自守书 指 一个数的平方的尾数等于该熟自身的自然数 例如:
25*25=625 76*76=5776 9376*9376=87909376
我自己写了下代码 最后那部分判断该数平方的尾数是不是等于该数的那后面出问题了 我找了半天 找不出逻辑错在哪 请高手指点下 先谢了:
int num(int n) //计算数的位数
{
int r,coun=0;
while(0!=r)
{
r=n/10;
n/=10;
coun++;
}
return coun;
}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void main()
{
int n,m,i,s,r,j,t;
int *p = NULL;
s = 0;
for(m=0;m<100;m++)
{
n=m*m;
// printf("%d \n",n);
r=num(m);
// printf("%d \n",r);
p = (int *)malloc(r*sizeof(int));
for(i=1,p[0]=n%10;i<r;i++) //得到平方数的尾数
{
n = n-p[i-1];
p[i] = n/10%10;
n=n/10;
}
//for(i=0;i<r;i++) //打印尾数数字
// printf("%d ",p[i]);
for(i=1;i<r;i++)
{
for(j=1;j<=i;j++)
{
p[i] = p[i]*10;
}
s +=p[i];
}
s=s+p[0]; //求出尾数
printf("\n%d ",s);
if(s == m) //比较尾数和该数是否相等
printf("\n%d ",m);
printf("\n");
}
}