当前位置: 代码迷 >> C语言 >> 有点难道的C语言题.
  详细解决方案

有点难道的C语言题.

热度:267   发布时间:2007-05-16 23:38:40.0
有点难道的C语言题.
编程判断一个正数是否是同构数:同构数是这样的一个数,它出现在它的平方数的右边.比如:5就是同构数,因为5的平方数是25,25右边的数正好是5.同理25也是同构数,因为25也出现在其平方数625的右边.
(题目中假设该数小于10000)
搜索更多相关的解决方案: C语言  同构  平方  正数  题目  

----------------解决方案--------------------------------------------------------
这个题有人发过  你到论坛上找找
----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------
怎么找啊,这么多
----------------解决方案--------------------------------------------------------

你这个题有点难啊,兄弟想了一会,想了个方法如下:
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");
}

----------------解决方案--------------------------------------------------------
这里真多高手,多谢上面的楼主了.
----------------解决方案--------------------------------------------------------
  相关解决方案