判断同构数 问题描述给定一个十进制正整数,判断其是否为同构数。所谓同构数是这样的一些数,它出现在其平方数的右边,例如5是 右边的数,25是 右边的数,所以5和25都是同构数。输入输入数据有若干行。每行上有一个正整数,对应一种情形。输出对于每一种情形,先输出“Case #:”(#为序号,从1起),然后输出n,逗号,结果(Yes或No),换行。输入样例51525输出样例Case 1: 5, YesCase 2: 15, NoCase 3: 25, Yes
pow函数使用有问题。
Math库里的pow函数的返回类型是一个精度浮点数。
你在isomorphism函数中直接另mod为整型
实际上损失了你后来的pow(10,a)的精度。
就比如说pow(10,2)的返回值是一个99.xxxxxxx的数,然后你直接int了,所以在位数等于2时,你的mod就变成99了。
我们看下面这段代码:
运行结果为两个1,说明的确在你位数等于2的时候,你mod是99而不是100。
所以有一个改进建议就是
if(isomorphism(i,pow(10,a)))
改成
if(isomorphism(i,(pow(10,a)+0.5)))
有疑问请追问叭。