如何使用Python递归函数计算整数输入的各位数字平方和
整数各位平方和递归实现方案
直接补充递归逻辑的完整代码如下:
def squarer(x): # 此处x为整数,非列表 # 统一转为绝对值处理,兼容负数输入,若确定输入均为正整数可删除该行 x = abs(x) # 递归终止条件:拆分到仅剩个位数时直接返回平方值 if x < 10: return x ** 2 # 每次取最后一位计算平方,剩余高位传入下一轮递归累加结果 return (x % 10) ** 2 + squarer(x // 10)
逻辑说明
- 终止条件:当输入整数小于10时,说明已经完成所有位数的拆分,直接返回当前数字的平方即可结束递归
- 递归拆分规则:
- 用
x % 10取当前整数的最后一位数字,计算平方值 - 用
x // 10对整数做整除取整,自动去掉最后一位,作为参数传入下一轮递归 - 累加当前位平方值和后续递归返回的高位平方和,得到最终结果
- 用
效果验证
输入squarer(123)时的计算流程:3² + squarer(12) = 9 + (2² + squarer(1)) = 9 +4 +1 =14,完全符合需求。
内容的提问来源于stack exchange,提问作者Jakeyyyy
相关产品推荐
相关产品推荐

