原题:
通过调用函数求1000以内的自守数。自守数是指一个数的平方的尾数等于该数自身的自然数。例如,25²=625;76²=5776;9326²=87909376。
要求:
(1)编写函数isa(n),判断n是否为自守数,如果是返回1,否则返回0。
(2)在main函数中,使用for循环调用isa()函数判断n是否为自守数。
(3)打印的数字占8个字符宽,每行显示5个自守数。
#include <stdio.h>
int isa(int n);
int isa(int n)
{
int m;
m=n*n;
int r=0;
for(int i=10;i<=1000;i*=10)
{
if(m%i==n)
{
r=1;
}
}
return r;
}
int main()
{
int n=1;
int r;
int jishuqi=0;
for(n;n<1000;n++)
{
r=isa(n);
if(r==1)
{
printf("%8.d",n);
jishuqi++;
if(jishuqi%5==0)
{
printf("\n");
}
}
}
}
运行结果: