犯了好几个错误的。
1,你破坏了指示循环次数的n
2,每次用完count没有恢复零,导致长度出错。
2,“^”运算符的意思是按位异或,冥运算要用函数pow。
3,判断相等用“==”。“=”是赋值号,返回值总是真,放在if里永远成立。
4,“sum=sum+1”?难道你要求所有同构数之和?应当把printf放在外层循环里以输出每个值。
//////////下面是更改的
#include
#include
void main()
{
int n,m,count=0,sum=0;
for(n=1;n<=1000;n++)
{
m=n;
count=0;
while(n>0)
{
n=n/10;
count=count+1;
}
n=m;
if(m==(m*m)%(int)(pow(10,count)))
{
printf("%d\n",n);
sum+=n;
}
}
printf("\nthe sum : %d\n",sum);
}
////////////这个是我自己写的
#include
#include
void main()
{
for(int i=0;i<10000;i++)
if((i*i-i)%(int)pow(10,int(log10(i)+1))==0)cout<
}
这好像是C++啊
C++