题目:正整数[a,b]之间的全部同构数之和
输入:只有一行,两个正整数a,b,空格分开,位于[1,10000]之间
输出:一行,a,b,之间同构数之和
以下是我的答案,DEV上运行正确,但无法通过测评
#include<stdio.h>
#include<math.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
int m,i,j,sum;
int s[10000];
for(i=a;i<=b;i++){
for(j=1;j<5;j++){
if(i>=pow(10,j-1)&&i<=pow(10,j)){
m=(i*i)%(int)(pow((double)10,(double)j));
if(m==i){
s[i]=i;
}
else{
s[i]=0;
}
}
}
sum=sum+s[i];
}
printf("%d\n",sum);
return 0;
}
供参考:
#include <stdio.h>
int main()
{
int i, a, b, k, t, s, sum;
scanf("%d%d", &a, &b);
for (i = a,sum = 0; i <= b; i++)
{
t = i; k = i * i; s = 1;
while (t) { s *= 10; t /= 10; }
if ((k % s) == i)
sum+=i;
}
printf("%d",sum);
return 0;
}