同构函数c语言 同构数 c++语言程序

C语言求同构数

1、算法分析:

专注于为中小企业提供成都网站制作、成都做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业龙潭免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

对指定范围内的每一个整数a,求出其平方,判断a是否是其平方的尾部,通常有以下方法:

通过字符串子串比较找出同构数。

为了求更高位数的同构数,可应用同构数的以下性质:一个m位同构数的尾部m-1位数也是一个同构数。道理很简单

,a是一个m位数,a的平方数尾部的m-1位仅由a尾部的m-1位决定而与a的最高位无关。

易知一个同构数有三个:1,5,6,则二位同构数的个位数字只可能是1,5,6这三个数字。

根据这一思路,我们可应用递推求出多位同构数串。

2.求指定区间内的同构数

程序代码如下:

#includestdio.h

#includestdlib.h

#includestring.h

char *right(char *ms,int len); /*截取一个字符串尾部长为len个字符的子串*/

void main()

{

long a;

int len;

char as[10];

char ms[20];

printf("求[1,10000]中的同构数:\n");

for(a=1;a=10000;a++)

{

ultoa(a,as,10); /*数a转换为字符串,存入as*/

len=strlen(as);

ultoa(a*a,ms,10);

if(strcmp(as,right(ms,len))==0) /*比较字符串as与ms长为len的子串是否相等*/

printf("%s 其平方为 %s\n",as,ms); /*相等就是同构数,输出结果*/

}

}

char *right(char *ms,int len) /*截取字符串尾部长为len子串的函数*/

{

int i,j;

for(i=0;i(signed)strlen(ms);ms++);

for(j=0;jlen;j++,ms--);

return ms;

}

C语言编程 自定义判断同构数的函数

int fun(int x)

{

int a,b=10,c=0;

a=x;

while(a/10!=0){b*=10;a/=10;} /*判断x是几位数*/

a=x*x;

c=(a%b==x)? 1:0;

return c;

}

怎样用c语言判断一个数是否是同构数?

1、首先在电脑中,打开visual C++ 6.0-文件-新建-文件-C++ Source File。

2、输入预处理命令和主函数,如下图所示。

3、定义变量并输入数值,如下图所示。

4、接着计算a是否是完美数,如下图所示。

5、最后点击页面上方的运行,如下图所示,就完成了。


本文名称:同构函数c语言 同构数 c++语言程序
标题来源:http://azwzsj.com/article/doggcei.html