韩信点兵问题的不同语言解法

韩信点兵

时间限制: 3000 ms  |  内存限制: 65535 KB
难度: 1
描述
相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了。输入3个非负整数a,b,c ,表示每种队形排尾的人数(a<3,b<5,c<7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100 。
输入
输入3个非负整数a,b,c ,表示每种队形排尾的人数(a<3,b<5,c<7)。例如,输入:2 4 5
输出
输出总人数的最小值(或报告无解,即输出No answer)。实例,输出:89
样例输入
2 1 6
样例输出
41

1,C语言

#include<stdio.h>
int main()
{
int i,a,b,c,d;
scanf("%d%d%d",&a,&b,&c);
for(i = 1; i <= 100 ;i++)
{
if((i-a)%3==0&&(i-b)%5==0&&(i-c)%7==0)
{
d=i;
break;
}
}
if(d<10)
printf("NO answer");
else
   printf("%d\n",d);
return 0;
}

2,C++

#include<iostream>
using namespace std;
int main()
{
int a,b,c,i,d;
cin>>a>>b>>c;
for(i=1;i<=100; i++)
{
if((i-a)%3==0&&(i-b)%5==0&&(i-c)%7==0)
{
      d=i;
  break;
}
}
if(d<10)
cout<<"No answer"<<endl;
else
cout<<d<<endl;
return 0;

}

3,JAVA

package a;

import java.util.Scanner;

public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub
int a,b,c,d = 0;
System.out.println("请输入三个数:");
Scanner sc=new Scanner(System.in);
     a=sc.nextInt();
b=sc.nextInt();
c=sc.nextInt();
for(int i=1;i<=100;i++)
{
if((i-a)%3==0&&(i-b)%5==0&&(i-c)%7==0)
{
d=i;
break;
}
}
if(d<10)
System.out.println("No answer");
else
System.out.printf("%d",d);
}
}

4,Python

a=int(input())
b=int(input())
c=int(input())
for i in range(1,100):
  if((i-a)%3==0and(i-b)%5==0and(i-c)%7==0):
    d=i
    break
if d<10:
  print("No answer")
else:
  print (d)

猜你喜欢

转载自blog.csdn.net/llxybm/article/details/79915566