第一种方法:循环写韩信点兵
//循环写韩信点兵
#include <stdio.h>
int main()
{
int a,b,c;
int x,y,z,j;
scanf("%d%d%d",&a,&b,&c);
int i;
int f=0;
for(i=3;i<=34;i++)
{
int sum=3*i+a;
for(j=2;j<=20;j++)
{
if(((j*5)+b)==sum&&f==0)
{
for(z=1;z<15;z++)
{
if(((z*7)+c)==sum&&f==0)
{
printf("%d",sum);
f=1;
break;
}
}
}
if(f==1)
break;
}
if(f==1)
break;
}
if(f==0)
printf("No answer");
return 0;
}
第二种: 正常取余算
#include<stdio.h>
#include<math.h>
int main()
{
int x, y, z;
int i;
scanf_s("%d%d%d", &x, &y, &z);
for (i = 10; i <= 100; i++)
{
if (i % 3 == x && i % 5 == y && i % 7 == z)
printf("%d", i);
}
if (i > 100)
printf("No answer");
}