为什么我的结果都是no,代码也好像没有判断过s是否等于i,直接循环81次。
看了很久怎么也找不到原因,求解答!
#include <stdio.h>
int s_(int a,int b,int c,int d,int *x)
{
int i,n,s=0;
for(i=0; i<=81; i++)
{
*x=(i+a)*(i+b)*(i+c)*(i+d);
n=x;
while(n)
{
s+=n%10;
n/=10;
}
if(s==i)
return 1;
}
return 0;
}
int main()
{
long long int x,n,i,s;
int a,b,c,d,k;
while(scanf("%d%d%d%d",&a,&b,&c,&d)!=EOF)
{
if(s_(a,b,c,d,&x))
printf("%lld\n",x);
else
printf("no\n");
}
return 0;
}