pta题库7-7 同构数 (10 分)
一个数恰好出现在它的平方数的右端,这个数就称为同构数。找出1~1000之间的全部同构数。
输出格式:
在一行中输出所有满足条件的同构数,每个数输出占6列。没有其它任何附加格式和字符。
输出样例:
1 5 6 25 76 376 625
#include<stdio.h>
int solute(int a)
{
int pingfang = a * a;//存平方
//算其本身的位数
int pingfw = a, count = 0;
while (pingfw)
{
count++;
pingfw /= 10;
}
//开始查找是否符合重构数
switch (count)
{
case 1:if (pingfang%10==a||a==1)return 1;
case 2:if (pingfang%100==a)return 1;
case 3:if (pingfang%1000==a)return 1;
default:return 0;
}
}
int main()
{
int a[1000]={0};
for (int i = 0; i <999; i++)
{
a[i] = i + 1;
if (solute(a[i]))printf("%6d", a[i]);
}
return 0;
}
大佬尽情在评论区补充,谢谢!
求1~10000内的同构数只需要小改一下就🆗辣!