用Java编程解决韩信点兵的问题?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Java编程解决韩信点兵的问题?相关的知识,希望对你有一定的参考价值。
韩信有一队士兵,他想知道有多少人,他就让士兵报数,如果按照1到5报数,最末一个士兵报的数为1;按照1到6报数,最末一个士兵报的数为5;按照1到7报数,最末一个士兵报的数为4;最后再按1到11报数,最末一个士兵报的数为10,请问韩信这队士兵最少有多少人?
给你提供三种方法,楼下的太具有局限性。我这个还有点错误,但是对这个题没啥事,当按对应的数报数时,如果最后一个报数为最后一个,要余数等于0
public class HanXinpublic 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编程解决韩信点兵的问题?的主要内容,如果未能解决你的问题,请参考以下文章