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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Java编程解决韩信点兵的问题?相关的知识,希望对你有一定的参考价值。

韩信有一队士兵,他想知道有多少人,他就让士兵报数,如果按照1到5报数,最末一个士兵报的数为1;按照1到6报数,最末一个士兵报的数为5;按照1到7报数,最末一个士兵报的数为4;最后再按1到11报数,最末一个士兵报的数为10,请问韩信这队士兵最少有多少人?

给你提供三种方法,楼下的太具有局限性。我这个还有点错误,但是对这个题没啥事,当按对应的数报数时,如果最后一个报数为最后一个,要余数等于0

public class HanXin 
    public static void main(String[] args) 
        int num=HanXin.peopleNum(1,1,5,4,10);
        System.out.println(num);
        num = HanXin.peoplrNum_For(1,1,5,4,10);
        System.out.println(num);
        num = HanXin.peoplrNum_For_op(1,5,4,10);
        System.out.println(num);
    
    //递归方法
    public static int peopleNum(int num,int num5,int num6,int num7,int num11)
        if(num%5==num5 & num%6==num6 & num%7==num7 & num%11==num11)
            return num;
        else
            return peopleNum(num+1,num5,num6,num7,num11);
        
    
    //循环方法number of people
    public static int peoplrNum_For(int num,int num5,int num6,int num7,int num11)
        for(int i = num; i > 0; i++)
            if(i%5==num5 & i%6==num6 & i%7==num7 & i%11==num11)
                return i;
            
        
        return 0;
    
    //循环方法,针对题目优化版
    public static int peoplrNum_For_op(int num5,int num6,int num7,int num11)
        for(int i = 10; i > 0; i++)
            if(i%5==num5 & i%6==num6 & i%7==num7 & i%11==num11)
                return i;
            
        
        return 0;
    

参考技术A 1、简单求余算球:
for (int i = 10;; i++)

//对5求余为1,对6求余为5,对7求余为4,对11求余为10,得到一个数就break
if (i % 5 == 1 && i % 6 == 5 && i % 7 == 4 && i % 11 == 10)

System.out.println (i);
break;


2、最小结果应该是2111;
参考技术B 你好,试试下面的代码好了。
public class EvenDemo
public static void main(String[] args)
int start = 1;//开始的数
int end = 500;//结束的数
String separate = ",";// 分隔符号
int hitFlag =0;
int count = 10;//每行的数字个数
int index = 0; //索引,计算多少个偶数
for (int i = start; i <= end; i++) //循环
if (i%5 ==1)&&(i%6==5)&&(i%7 ==4)&& (i%11==10)
System.out.print(i);
break;



参考技术C 程序我可以提供。

基于java面对对象编程范式

科学思维&工程思维

科学思维:限制条件可有可无,理论可行寻求未解决问题转变为解决问题的最优解;

工程思维:限制条件多,现实可行性下寻求折中方案,不坏的解。

 

软件工程的发展历史:

数学-计算机问题   计算机-冯诺依曼模型 软件工程-用工程的问题来开放软件 

 

计算机思维:

数学为计算机提供理论和基础-现实问题->数学—>计算机解决  

计算机用特有的软件(编程范式:命令式 函数式)和硬件(硬件结构:冯诺依曼结构 哈佛结构)

软件框架:编程范式(命令式 函数式 逻辑式) 层次性(机器指令 汇编指令 高级语言)

以上是关于用Java编程解决韩信点兵的问题?的主要内容,如果未能解决你的问题,请参考以下文章

c语言韩信点兵

C语言编程:韩信点兵问题拜托各位了 3Q

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

编程:递归编程解决汉诺塔问题(用java实现)

c语言编程序:韩信点兵,韩信有一队伍,你想知道有多少人,就让士兵报数,按从1至5报数,最末一个士兵报的

递归编程解决汉诺塔问题。用Java实现