求1-100之间的同构数。c语言。 谢谢

如题所述

同构数是指一个数的平方末尾的几位数字与该数本身相同。例如,5的平方是25,而25的末尾数字是5,因此5是同构数。
下面是一个C语言程序,用于打印1-100之间的同构数:
#include <stdio.h>
int main() {
int i, j;
for (i = 1; i <= 100; i++) {
j = i * i;
if (i == j % 10 || i == j % 100) {
printf("%d ", i);
}
}
return 0;
}
该程序通过循环遍历1-100之间的整数,对每个整数求平方,并检查平方末尾的数字是否与该整数相同。如果相同,则将该整数打印出来。
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-02-24
#include <stdio.h>
int main()
{ int i=0,n=0,k=0;
for(i=1;i<100;i++)
{
for(k=10;i/k!=0;k*=10);
if((i*i)%k==i)
printf("%d\t",i);
}
printf("\n");
return 0;
}
第2个回答  2023-03-10
同构数是指这样的整数,它出现在它的平方数的右边。例如,5的平方数是25,5是25中右侧的数,所以5是同构数。
如果你想用c语言判断一个整数是否是同构数,你可以编写一个函数int fun (long int x),它的功能是:若x是同构数,函数返回1;否则返回0。
如果你想用c语言输出1-100之间的所有同构数,你可以用一个循环遍历每个整数,并调用上面的函数来检查是否是同构数。
第3个回答  2016-02-24
#include <stdio.h>

int main(void) 
{
unsigned long i,n,t,tt;
for(i=1;i<100;++i)
{
for(t=i,tt=i*i;t;t/=10,tt/=10)
{
if(t%10!=tt%10)
{
break;
}
}
if(!t)
{
printf("%lu\n",i);
}
}
return 0;
}

本回答被网友采纳
相似回答