发布网友 发布时间:2022-05-01 15:13
共2个回答
热心网友 时间:2023-10-21 03:09
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)))
有疑问请追问叭。
热心网友 时间:2023-10-21 03:09
把if(m%10==n)printf("%d",n);中的printf("%d",n);改成printf("%d\n",n);。追问谢谢大神!😍
热心网友 时间:2023-10-21 03:09
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)))
有疑问请追问叭。
热心网友 时间:2023-10-21 03:09
把if(m%10==n)printf("%d",n);中的printf("%d",n);改成printf("%d\n",n);。追问谢谢大神!😍