题目取自东北大学2019年计算机学院842计算机基础
我的方法是一个分步来做的过程,第一步是获得当前数所在的位数,然后设置一个10的n次方数用在取余运算中,此处的n就是刚才所取得的位数,最后将取余的结果与当前数进行比较即可。
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10000){
int t=i;
int cnt;
for(cnt=0;t>0;cnt++){
t/=10;
}
int num=i*i;
int ten=1;
for(cnt;cnt>0;cnt--){
ten*=10;
}
if(num%ten==i){
printf("%d\n",i);
}
i++;
}
return 0;
}