问题描述:
同构数是这样一个数,它出现在它的平方数的右边。比如,5就是同构旦肆数,因丛野为5的平方数是25,25右边的数是5。(假设题目中的数小于1000)
解析:
#include<stdio.h>
int main()
{ int n,temp,k
printf("渗迟喊please input the value of n: ")
scanf("%d",&n)
k=n*n
temp=k-n
if(temp%10==0)
printf("%d is tong gou shu\n",n)
else
printf("%d is not tong gou shu\n",n)
return 0
}
看看这个
利用数据类型转换讲数字问题变成字符串比对。将数字平方让后转换成字符串然后利用索引做切片看与数字本身转换成字符串的量是否相等。这个方法充分利用了python的内置丰富的内置函数。
随机输入若干个不超过2位的正整数(输入-1表示输入结束),找出其中所有同构数并排序输出。(正整数n若是它平方数的尾部,则称n为同构数迅袭。如5的平方数是25,且5是25的尾部,那么5就是一个同构数。同理,25的平方为625,25也是同构数)。
简介
输入时要求首先判断输入数位数(1-2位)是否正确,判断输入内容是否是数消旦字,提示:判断一个字符串是否是数字字符可用字符串的isdigit方法然后判断是否是同构数。
输出的同亩桥兄构数要求从小到大排序,结果显示在一行,各同构数间空格分隔。提示:排序可用列表的sort方法。
#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 与右端数哗扒李 是否相等,相等即为同构数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)