習題6 韓信點兵
阿新 • • 發佈:2017-09-14
oid 利用 .cn code imp == 參數 clas pub
題目如下
相傳韓信才智過人,從不直接清點自己軍隊的人數,只要讓士兵先後以三人一排、五人一排、七人一排地變換隊形,而他每次只掠一眼隊伍的排尾就知道總人數了。輸入3個非負整數a,b,c ,表示每種隊形排尾的人數(a<3,b<5,c<7),輸出總人數的最小值。已知總人數不小於10,不超過100 。
樣例輸入
2 1 6
樣例輸出
41
首先此處為實現在控制器輸入參數進行輸出,引用scanner
import java.util.Scanner; public class Hanxindianbing { public static void main(String[] args){ } }
將scanner實例化,
import java.util.Scanner; public class Hanxindianbing { public static void main(String[] args){ Scanner scanner=new Scanner(System.in); int a=scanner.nextInt(); int b=scanner.nextInt(); int c=scanner.nextInt(); } }
如題,只要讓士兵先後以三人一排、五人一排、七人一排地變換隊形,而他每次只掠一眼隊伍的排尾就知道總人數了。
也就是說總人數%3=a 且 總人數%5=b 且 總人數%7=c;
定義總人數為sum (int sum) 且總人數不小於10人,不超過100人。
接下來利用一層for循環來判斷
import java.util.Scanner; public class Hanxindianbing { public static void main(String[] args){ Scanner scanner=new Scanner(System.in); int a=scanner.nextInt(); int b=scanner.nextInt();int c=scanner.nextInt(); for(int sum=10;sum<=100;sum++){ if(sum%3==a && sum%5==b && sum%7==c){ } } } }
下面輸出,題目中還提到,輸出總人數的最小值,那麽我的方法是輸出一次之後就跳出循環。
import java.util.Scanner; public class Hanxindianbing { public static void main(String[] args){ Scanner scanner=new Scanner(System.in); int a=scanner.nextInt(); int b=scanner.nextInt(); int c=scanner.nextInt(); for(int sum=10;sum<=100;sum++){ if(sum%3==a && sum%5==b && sum%7==c){ System.out.println(sum);break; } } } }
在控制臺輸入2、1、6
結果
習題6 韓信點兵