【发布时间】:2015-05-12 22:48:22
【问题描述】:
我正在尝试解决手指练习 3.1,但我无法弄清楚我在这里做错了什么。当我输入 '1' 作为整数时,它返回 0 和 0。
我是编程和 Stack Overflow 的新手,所以我不确定我是否正确执行此操作,但我想我会试一试。
这就是问题所在: 编写一个程序,要求用户输入一个整数并打印两个整数, root 和 pwr,这样 0
到目前为止,这是我的解决方案:
x = int(raw_input('Enter a positive integer: '))
root = 0
pwr = 0
while pwr < 6:
pwr += 1
while root**pwr < x:
root += 1
if root**pwr == x:
print "The root is " + str(root) + " and the power is " + str(pwr)
else:
print "No such pair of integers exists."
如何修复我的代码以使其返回正确的整数? 我在这里做错了什么?我错过了什么逻辑?
【问题讨论】:
-
当我复制并粘贴您写的代码并输入“1”时,我得到“根为 1,幂为 6”的返回,我想我会在这个特殊的地方重新编写情况下,电源不会一直到 6,但我没有收到您的错误。您是否完全按照您在此处发布的内容运行?但是,当我们谈到这个主题时,从技术上讲,零到零的幂确实等于一。
-
这段代码有很多问题。与其从代码开始,不如弄清楚你将如何手工完成。然后将该算法翻译成代码。
-
我认为您不能正确地说明问题。任何整数 x 都有 x**1=x(即:root=x, pwr=1),所以程序可以只做
print x, 1。也许你的意思是 1 -
谢谢你们的帮助。我对编程完全陌生,所以我确信我的代码有很多问题。哈哈。我希望随着时间的推移学习如何更有效地编程。
标签: python logic computation