我正在为我看的一个视频做一个数学检查,基本上,你把Input1,Input2,Input3,Input4加在一起。如果和大于9,则取整数并将它们相加,然后不断重复,直到得到1-9为止。然后取Input1并进行数字加法,直到得到小于10的数字。对Input2、Input3和Input4重复这个步骤。然后把这四个数字相加,重复这个数字的加法,直到有一个数字小于10。检查输入1、2、3、4之和所剩的单个数字是否应分别与输入1、2、3、4的数字之和相同。你知道吗
这对小数字有效,但对大数字无效。我得到不同的数字和大于9的数字。你知道吗
我做错什么了?你知道吗
Input1 = 16836373683333
Input2 = 2338737938763876373897
Input3 = 3387398737837893
Input4 = 48739873973334556368638637876383
Sum = Input1 + Input2 + Input3 + Input4
Sum = str(Sum)
Sum = list(Sum)
Sum = list(int(digit) for digit in Sum)
Sum = sum(Sum)
if Sum > 9:
Sum = str(Sum)
Sum = list(Sum)
Sum = list(int(digit) for digit in Sum)
Sum = sum(Sum)
Input1 = str(Input1)
Input1 = list(Input1)
Input1 = list(int(digit) for digit in Input1)
Input1 = sum(Input1)
if Input1 > 9:
Input1 = str(Input1)
Input1 = list(Input1)
Input1 = list(int(digit) for digit in Input1)
Input1 = sum(Input1)
Input2 = str(Input2)
Input2 = list(Input2)
Input2 = list(int(digit) for digit in Input2)
Input2 = sum(Input2)
if Input2 > 9:
Input2 = str(Input2)
Input2 = list(Input2)
Input2 = list(int(digit) for digit in Input2)
Input2 = sum(Input2)
Input3 = str(Input3)
Input3 = list(Input3)
Input3 = list(int(digit) for digit in Input3)
Input3 = sum(Input3)
if Input3 > 9:
Input3 = str(Input3)
Input3 = list(Input3)
Input3 = list(int(digit) for digit in Input3)
Input3 = sum(Input3)
Input4 = str(Input4)
Input4 = list(Input4)
Input4 = list(int(digit) for digit in Input4)
Input4 = sum(Input4)
if Input4 > 9:
Input4 = str(Input4)
Input4 = list(Input4)
Input4 = list(int(digit) for digit in Input4)
Input4 = sum(Input4)
NewSum = Input1 + Input2 + Input3 + Input4
if NewSum > 9:
NewSum = str(NewSum)
NewSum = list(NewSum)
NewSum = list(int(digit) for digit in NewSum)
NewSum = sum(NewSum)
print Sum
print NewSum
if Sum == NewSum:
print 'Checks out!'
else:
print 'Does not check out'
这里的主要问题(除了可怕的复制/粘贴之外)是
if x > 9
测试不在循环中。你知道吗因此,如果某个数字高于9,则可以减小其值,但不能确保它仍然高于9(这说明它适用于小值)。你知道吗
我的建议(如评论中所说,相当简短:)
两个结果我都得6分。退房!你知道吗
相关问题 更多 >
编程相关推荐