python - 我是 Python 新手。而且这个递归程序往往因为一些我无法弄清楚的奇怪原因而无法运行。任何帮助将不胜感激
问题描述
这个程序应该接受一个数字并找到它的反面。如果该数字是回文,它会打印该数字。如果数字不是回文,则将数字添加到其反面,然后再次检查回文。这种情况不断发生,这也表明最终结果应该是回文。这是代码:
num = int(input("Enter a number: "))
def palindromeConverter(n):
m = n
rev = 0
while(n>0):
rev = (rev*10) + (n%10)
n = n/10
if(rev==m):
return rev
else:
return palindromeConverter(rev+m)
print(palindromeConverter(num))
解决方案
如果您打印n,您将看到您的脚本无限运行。while 循环永远不会结束
while(n>0):
rev = (rev*10) + (n%10)
n = n/10
print(n)
编辑:
在我搜索了一些示例之后,我认为您的n = n/10划分是错误的。应该是楼层划分n = n//10
如果你像这样改变它,它工作得很好:
num = int(input("Enter a number: "))
def palindromeConverter(n):
m = n
rev = 0
while(n>0):
rev = (rev*10) + (n%10)
n = n//10
if(rev==m):
return rev
else:
return palindromeConverter(rev+m)
print(palindromeConverter(num))
推荐阅读
- python - 有没有办法使用 scikit-learn 绘制随机森林的 OOB ROC 曲线?
- laravel - Laravel - 根据子关联获取父数据
- angular - ngx-translate 和 Auth0 身份验证出错
- python - 从 python 到 C++ 的 openCV 矩阵数学行为变化
- sql - HAVING 中的条件比 WHERE 中的相同条件快吗?
- javascript - 原生 Javascript 滚动到底部,在 div 上带有动态添加内容的平滑动画
- ansible - 如何在ansible playbook中使用while循环创建主机名
- c# - 使用 dotnet core 3.0 在 restful api 中返回嵌套数组
- ruby-on-rails - 如何发送访问令牌以响应 devise-auth-token
- r - Shiny R 应用程序创建累积分布