因此,此函数将值减小到单个数字的方式是在循环中连续添加值的数字,直到它的值为9或更小。当两个数字加在一起等于10时会出现问题,然后通过为值1加1 + 0来进一步减少。
def rts(value):
VALUE_STR = str(value)
ANSWER = "0"
while value > 9:
value = int("0")
for ch in VALUE_STR:
ch = int(ch)
value += ch
ANSWER = str(value)
return ANSWER
我无法真正显示每个说法的输出但是当我打印出来时,无论何时传递一个数字值,当它被添加等于10时,它将陷入无限循环。
示例1:
91
9 + 1 = 10
开始无休止的循环
示例2:
64个
6 + 4 = 10
开始无休止的循环
与其他数字一起使用的方式
示例1:
97
9 + 7 = 16
16个
6 + 1 = 7
答案= 7
示例2:
45个
4 + 5 = 9
答案= 9
以下是需要类似功能的任何人的固定代码。
def rts(value):
VALUE_STR = str(value)
ANSWER = "0"
while value > 9:
value = int("0")
for ch in VALUE_STR:
ch = int(ch)
value += ch
ANSWER = str(value)
VALUE_STR = str(value)
return ANSWER
答案 0 :(得分:2)
在第
行for ch in VALUE_STR:
您在循环的每次运行中反馈原始字符串。因此,任何需要多次迭代的执行都会产生无限循环。
答案 1 :(得分:2)
此功能以不同的方式执行相同操作。它遍历数字中的数字并对它们求和。然后检查结果是否为单位数。如果没有,它会递归调用自己。
def rts(input_number):
input_number = str(input_number)
value = 0
for x in input_number:
value += int(x)
if (value > 9):
return rts(value)
else:
return value
答案 2 :(得分:0)
我的场景是动态的,但它提供了预期的输出:
nlist = input("Enter the number: ")
val = 0
num = 0
for n in nlist:
val = val + int(n)
for i in str(val):
num += int(i)
print("Reduce number by sum is: ", num)
输出:
输入数字:46
4 + 6 = 10
1 + 0 = 1
总和减少数为:1