python - 计算 GCD 时无法返回 if 块
问题描述
我正在尝试计算 2 个数字的 GCD,以下代码块工作正常,我正在使用递归,但是当我尝试返回一个值时,我无法这样做,return a
导致None
def gcd(a,b):
if b == 0:
print a
return a # This is not working
else:
gcd(b,a%b)
XX = gcd(3, 5)
print (XX)
输出:
1
None
解决方案
你的代码
def gcd(a,b):
if b == 0:
print a
return a # This is not working
else:
gcd(b,a%b)
XX=gcd(3,5)
print (XX)
将不起作用,因为您缺少该行中的 return 语句gcd(b,a%b)
。所以应该是
def gcd(a,b):
if b == 0:
print a
return a
else:
return gcd(b,a%b)
print(gcd(12, 4))
顺便说一句 - 如果可能的话,不要自己编写代码,使用预定义的库:
from fractions import gcd
print(gcd(4, 12))
推荐阅读
- angular - Gitlab CI/CD - 如何知道进程何时完成
- javascript - 可以同时使用firebase和express吗?
- css - 单击时css更改占位符(无js)
- c++ - 添加 _AFXDLL 宏和 clr 支持后找不到 InterlockedAdd64
- symfony - Symfony 5 无效的防火墙“api”:找不到用户提供程序“app_user_provider”
- javascript - render.js 中的电子属性无法访问
- vue.js - Vue保护路径免受编辑的本地存储
- autodesk-forge - 如何使用 Revit API 读取所有数据?
- javascript - 使 PartialView 适合引导模式 (MVC)
- python - 如何自定义 LSTM 损失函数以仅考虑给定的预测索引范围和目标序列?