习题6 韩信点兵
Posted IToIT
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了习题6 韩信点兵相关的知识,希望对你有一定的参考价值。
题目如下
相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了。输入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 韩信点兵的主要内容,如果未能解决你的问题,请参考以下文章