程式設計入門3 韓信點兵問題

文章推薦指數: 80 %
投票人數:10人

韓信點兵(hanxin) 相傳韓信才智過人,從不直接清點自己軍隊的人數,只要讓士兵先後以三人一排、五人一排、七人一排地變換隊形,而他每次只掠一眼 ... 程式語言前端開發IOS開發Android開發雲端運算人工智慧伺服器搜尋資料庫軟體開發工具程式設計入門3韓信點兵問題2018.07.16程式語言HOME程式語言程式設計入門3韓信點兵問題Advertisement韓信點兵(hanxin)相傳韓信才智過人,從不直接清點自己軍隊的人數,只要讓士兵先後以三人一排、五人一排、七人一排地變換隊形,而他每次只掠一眼隊伍的排尾就知道總人數了。

輸入包含多組資料,每組資料包含3個非負整數a,b,c,表示每種隊形排尾的人數(a<3,b<5,c<7),輸出總人數的最小值(或報告無解)。

已知總人數不小於10,不超過100。

輸入到檔案結束為止。

樣例輸入:216213樣例輸出:Case1:41Case2:Noanswer一,我的答案:#include intmain() { inta,b,c,i,j,k,sum,sum_1,sum_2,count=0,flag; while(scanf("%d%d%d",&a,&b,&c)!=EOF) { flag=0; sum=0; for(i=0;;i) { sum=3*ia; if(sum>100) { printf("Case%d:Noanswer\n",count); break; } if(sum>=10&&sum<=100) { for(j=0;;j) { sum_1=5*jb; if(sum_1==sum) { for(k=0;;k) { sum_2=7*kc; if(sum_1==sum_2) { printf("Case%d:%d\n",count,sum_2); flag=1; break; } if(sum_2>sum_1) { break; } } } if(sum_1>sum) { break; } if(flag==1) { break; } } } if(flag==1) { break; } } } return0; }二,標準答案#include intmain() { inta,b,c,i,count=0; while(scanf("%d%d%d",&a,&b,&c)!=EOF) { i=0; for(i=0;;i) { if(i>100) { printf("Case%d:Noanswer\n",count); break; } if(i%3==a&&i%5==b&&i%7==c) { printf("Case%d:%d\n",count,i); break; } } } return0; }收穫體會:if語句能幾個條件並列在一塊,就別弄成if巢狀。

AdvertisementAdvertisement写评论取消回覆很抱歉,必須登入網站才能發佈留言。

近期文章Sizzle源碼分析(四):Sizzle是如何選擇元素的2020.01.09基於Charles,如何利用代理技術進行接口mock測試2020.01.09Spring中FactoryBean的作用和實現原理2020.01.09SpringMVC加載流程2020.01.09HashMap原理技術知識整理2020.01.09淺談MySQL的事務與ACID2020.01.09FishRedux完成一個玩安卓客戶端2020.01.09Elasticsearch調優篇慢查詢分析筆記2020.01.09Hadoop完全分佈式安裝與部署2020.01.09Scala教程之:可變和不變集合2020.01.09AdvertisementAdvertisement



請為這篇文章評分?