有点难道的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));
}
}
----------------解决方案--------------------------------------------------------
这么简单的提高得这么复杂!
devcpp上调试过的
#include"stdio.h"
main()
{
int x,z;
for(x=1;x<10001;x++)
{
for(z=1;x/z!=0;z=z*10){}
if(x*x%z==x)
printf("%d,%d\n",x,x*x);
}
system("pause");
}
----------------解决方案--------------------------------------------------------
这里真多高手,多谢上面的楼主了.
----------------解决方案--------------------------------------------------------