5的平方=25 25%10=5 所以5 是
25的平方=625 625 % 100 = 25 所以25是
2位数就取10的余数
3位数就取100的余数
4位数就取1000的余数
#include <stdio.h>
int main ()
{
for(int i=0;i<1000;i++)
{
int x=i * i;
if(i<10 && x % 10 == i)
printf("%d\n",i);
else if (i>=10 && i < 100 && x % 100==i)
printf("%d\n",i);
else if(i>= 100 && i < 1000 && x % 1000==i)
printf("%d\n",i);
}
return 0;
}
方法二:
#include <stdio.h>
#include <math.h>
int f(int n) // 计算他是几位数 方便后面求 0就返回0 1返回1 11 返回2
{
int num = 0;
while(n)
{
num++;
n = n / 10;
}
return num;
}
int main ()
{
for(int i=0;i<1000;i++)
{
int t = f(i); // 存放位数;
if(i * i % (int)pow(10,t) == i) // 就是取10的位数次方余数 假如是 2位数 就10的2次方 100
printf("%d\n",i);
}
return 0;
}