java韩信点兵代码实现 韩信点兵伪代码
韩信点兵不足百人,3人一行多1个,7人一行少2个,5人一行正好,问有多少兵
答案 :40
若羌ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
我用了比较笨的办法,这种办法如果对数字比较敏感的一下就能出来。
可以把原题改为这样,100以内的数,这个数减一能被3整除,加2能被7整除,能被5整除。
我是这样想的,能被7整除的数:7、14、21、28、35、42、49、56、63、70、77、84、91、98,这个数减2能被5整除,如果能被5整除的话尾数肯定是0或者5,那么一目了然是40
见笑了。
用Java编程解决韩信点兵的问题?
给你提供三种方法,楼下的太具有局限性。我这个还有点错误,但是对这个题没啥事,当按对应的数报数时,如果最后一个报数为最后一个,要余数等于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;
}
}
关于ECLIPSE的问题
运行时在代码窗口点鼠标右键,选择 run as -- Java application
中文的我不太清楚具体是什么,不过估计差不多是 运行 -- Java程序 一类的。
分享文章:java韩信点兵代码实现 韩信点兵伪代码
标题来源:http://scyanting.com/article/hhjdes.html