利用数据类型转换讲数字问题变成字符串比对。将数字平方让后转换成字符串然后利用索引做切片看与数字本身转换成字符串的量是否相等。这个方法充分利用了python的内置丰富的内置函数。
我们提供的服务有:成都网站建设、成都网站制作、微信公众号开发、网站优化、网站认证、云梦ssl等。为上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的云梦网站制作公司
随机输入若干个不超过2位的正整数(输入-1表示输入结束),找出其中所有同构数并排序输出。(正整数n若是它平方数的尾部,则称n为同构数。如5的平方数是25,且5是25的尾部,那么5就是一个同构数。同理,25的平方为625,25也是同构数)。
简介
输入时要求首先判断输入数位数(1-2位)是否正确,判断输入内容是否是数字,提示:判断一个字符串是否是数字字符可用字符串的isdigit方法然后判断是否是同构数。
输出的同构数要求从小到大排序,结果显示在一行,各同构数间空格分隔。提示:排序可用列表的sort方法。
1、首先在电脑中,打开visual C++ 6.0-文件-新建-文件-C++ Source File。
2、输入预处理命令和主函数,如下图所示。
3、定义变量并输入数值,如下图所示。
4、接着计算a是否是完美数,如下图所示。
5、最后点击页面上方的运行,如下图所示,就完成了。
#include
inttgs(intx)
{
intm1,n,a,b;
m1=x;
n=x*m1;
while(m1)
{
a=m1%10;
b=n%10;
if(a!=b)break;
m1=m1/10;
n=n/10;
}
returnm1==0;
}
intmain()
{
intx;
scanf("%d", x);
if(tgs(x))printf("%d是一个同构数",x);
elseprintf("%d不是一个同构数",x);
return0;
}。
扩展资料
C语言 同构数的算法
“同构数”是指这样的整数:它恰好出现在其平方数的右端。
如:376*376=141376。请输出10000以内的全部“同构数”。
算法分析:
1.求出1-10000之间每个数的位数(即这个数是几位数)。设这个数是i.//用for循环实现。
2.再求出每个数的平方值,提取出最右端对应位数的数值出来。//用取模%法实现。
如369是个三个数,它的平方是136161,用取模%法提取出最右三位数字161,即136161%1000=161。
3.最后判断 i 与右端数 是否相等,相等即为同构数。
#include stdio.h
int main()
{
long i,j,n=0,k=10;/*i为测试的数字,就是1-10000,n用来记录同构数的次数,其他的能不能理解就看你了*/
for(i=1;i=10000;i++)
{
if(i==k)
k=k*10;
j=i*i;
if(j%k==i)
n++;
}
printf("1-10000内同构数的个数为%d\n",n);
return 0;
}
已在VC++6.0下调试通过。
你再添加若是同构数,函数返回1;否则返回0就可以了