致我:
幻数:,如果一个数字的数字之和变为1,直到结果的长度变为1,则称为幻数。
示例:1和: 1,10 sum: 1+0= 1,91 sum: pass1: 9+1= 10,pass2: 1+0= 1,100 sum: 1+0+0=1。
问题是:我的代码用于输入: 91,数字之和为: pass1: 9+ 1 = 10,pass2: 1+0=1,它显示了正确的输出。但不工作的任何其他输入,如: 100,55等。
代码:
def Single_Digit_Summer(num):
sum = 0
while num > 0:
sum += num % 10
num = num // 10
return Single_Digit_Summer(sum) if sum > 9 else sum
num15 = int(input("Enter number to check: "))
sum2 = Single_Digit_Summer(num15)
print(num15, "is a magic number.") if sum2 == 1 else print(num15, "is not a magic number.")输出:
Case - 1:
Terminal: Enter number to check:
Terminal input:91
Terminal output: 91 is a magic number.
Actual var 'sum' value: 1
Expected var 'sum' value: 1
Expected output: 91 is a magic number.
Decision: OK
Case - 2:
Terminal: Enter number to check:
Terminal input:100
Terminal output: 100 is not a magic number.
Actual var 'sum' value: 0
Expected var 'sum' value: 1
Expected output: 100 is a magic number.
Decision: Wrong Output
Case - 3:
Terminal: Enter number to check:
Terminal input:55
Terminal output: 55 is not a magic number.
Actual var 'sum' value: 5
Expected var 'sum' value: 1
Expected output: 55 is a magic number.
Decision: Wrong Output
Case - 4:
Terminal: Enter number to check:
Terminal input: 1009
Terminal output: 1009 is not a magic number.
Actual var 'sum' value: 9
Expected var 'sum' value: 1
Expected output: 1009 is a magic number.
Decision: Wrong OutputRequirement:我找不到为什么我的代码不能工作。帮我调试。
发布于 2022-04-07 06:51:52
这可以用简单的观察来解决。如果您知道9的可分性规则,即如果数字之和为9的话,数字可以被9整除。在这种情况下,您需要检查结束数字和1,它描述了如果将数除以9,余数为1,则它的幻数。因此,它可以写成:
def Single_Digit_Summer(num):
if(num%9 ==1):
return 1
return 0https://stackoverflow.com/questions/56964161
复制相似问题