Python编程求助:输入整数求十位百位和,现输出4而非1
修正代码:计算整数的十位与百位数字之和
原代码的问题在于循环累加了所有数位的数字,比如输入103时会得到1+0+3=4,不符合仅计算十位和百位的需求。以下是修正后的代码:
def getSum(n): # 提取百位数字 hundreds_digit = (n // 100) % 10 # 提取十位数字 tens_digit = (n // 10) % 10 return hundreds_digit + tens_digit myNum = int(input("输入数字:")) print(getSum(myNum))
关键逻辑说明
- 提取十位数字:先用
n // 10做地板除法去掉个位,再对10取模,得到十位上的数字(如103//10=10,10%10=0) - 提取百位数字:先用
n // 100做地板除法去掉个位和十位,再对10取模,得到百位上的数字(如103//100=1,1%10=1)
测试输入103时,输出结果为1,符合要求。
内容的提问来源于stack exchange,提问作者shwe khit
相关产品推荐
相关产品推荐

