用枚举法即可,在最大带兵范围内循环计算,直至找到合适的数。
10年积累的成都做网站、网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有玉溪免费网站建设让你可以放心的选择与我们合作。
题主的具体题目是什么?我这里先按最核心的内容编写代码吧。
题目:韩信带兵1500人,战死大约400-500,剩余兵力,3人一排多2人,5人一排多4人,7人一排多6人,求韩信剩余多少兵力。
#include stdio.h
int main (void) {
int n;
for (n=1000; n1100; n++) /*战死大约400-500,循环范围即在1000-1100之间*/
if((n%3==2)(n%5==4)(n%7==6)) /*循环找寻某数符合除3余2且除5余4且除7余6*/
printf("韩信剩余兵力为%d人!",n);
getch ();
return 0;
}
运行结果
‘2111个士兵
’vb代码
Private Sub Command1_Click()
Dim i As Long
Do
i = i + 1
If i Mod 5 = 1 And i Mod 6 = 5 And i Mod 7 = 4 And i Mod 11 = 10 Then Exit Do
Loop
Print i
End Sub
给你提供三种方法,楼下的太具有局限性。我这个还有点错误,但是对这个题没啥事,当按对应的数报数时,如果最后一个报数为最后一个,要余数等于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;
}
}