习题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 韩信点兵的主要内容,如果未能解决你的问题,请参考以下文章

关于大一的C语言问题,韩信点兵。。

C语言,韩信点兵编程,看看我的错在哪?

Scratch+小学数学妙趣横生6:韩信点兵

c语言简单程序

韩信点兵 ACM 代码问题。

用Java编程解决韩信点兵的问题?