有点难道的C语言题.
编程判断一个正数是否是同构数:同构数是这样的一个数,它出现在它的平方数的右边.比如:5就是同构数,因为5的平方数是25,25右边的数正好是5.同理25也是同构数,因为25也出现在其平方数625的右边.(题目中假设该数小于10000)
你这个题有点难啊,兄弟想了一会,想了个方法如下:
long x;
long y;
y=x*x;
试一下能不能把x和y赋值给2个字符数组,然后再检测一下一个数组是否包含另一下数组
#include <stdio.h>
#include <math.h>
int isomorphic(int n)
{
int m,len_suf_zero,len_n;
m=n*n-n;
if(!m)return 1;
len_suf_zero=0;
while(m%10==0){
len_suf_zero++;
m/=10;
}
len_n=log10(n)+1;
return (len_suf_zero>=len_n);
}int main()
{
int n;
while(scanf(\"%d\",&n)!=EOF){
printf(\"%d\n\", isomorphic(n));
}
}