首页 > 解决方案 > Python - 比较偶数和奇数输入的总和?

问题描述

每个人,

任务如下:在控制台中输入n个数字(代表后面的数字),所有奇数的总和要与所有偶数的总和进行比较。如果总和相等,则输出应为:

Yes
Sum = ...

如果总和不匹配,则输出应为:

No
Diff = ...

为什么我的以下解决方案现在有效:

n = int(input())

odd_sum = 0
even_sum = 0

for i in range(0, n, 2): #this should operate with the even input numbers only, step is 2 so no odd ones
    even_sum = even_sum + int(input())

for i in range(1, n, 2): #this should operate with the odd input numbers only, step is 2 so no even ones
    odd_sum = odd_sum + int(input())

if odd_sum == even_sum:
    print(f'Yes \nSum = {odd_sum}')
else:
    diff = abs(odd_sum) - abs(even_sum)
    print(f'No \nDiff = {diff}')

奇数和偶数迭代之间的分离似乎现在按预期工作。您能否解释错误在哪里,提供“2”步骤的范围格式应该没问题吗?

谢谢!

编辑:我试图用一个for循环来解决它,这次它似乎工作了:

n = int(input())

odd_sum = 0
even_sum = 0
diff = 0

for i in range(0, n):
    current_num = int(input())
    if i % 2 == 0:
        even_sum = even_sum + current_num
    else:
        odd_sum = odd_sum + current_num

if odd_sum == even_sum:
    print(f'Yes \nSum = {odd_sum}')
else:
    diff = abs(odd_sum - even_sum)
    print(f'No \nDiff = {diff}')

标签: python-3.x

解决方案


# Number of digits you want to enter
n = int(input())
    
odd_sum = 0
even_sum = 0
counter = 0
    
while counter < n:
    i = int(input())
    # Test for even
    if i%2 == 0:
        even_sum = even_sum + i
    else:
        odd_sum = odd_sum + i
    
if odd_sum == even_sum:
    print(f'Yes \nSum = {odd_sum}')
else:
    diff = abs(odd_sum) - abs(even_sum)
    print(f'No \nDiff = {diff}')

这应该有效。还尝试使用 try except 块来捕获适当的异常。


推荐阅读