python-3.x - 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}')
解决方案
# 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 块来捕获适当的异常。
推荐阅读
- spring-boot - 优雅地处理长时间运行的任务
- python - 如何通过给出条件在 Django 中进行搜索
- ios - 本地 JSON 枚举解码
- java - 无法设置当前工作目录 (err2))
- simplejson - SimpleJSON 返回 null
- javascript - 如何将一个组件从另一个组件返回到其原始状态?
- reactjs - 嵌套路由不使用精确道具渲染和删除以前的 UI
- javascript - 如何在反应js中的循环和条件语句中进行异步api调用?
- kubernetes - Kubernetes 网络策略中的 DNSSelector 支持
- laravel - 将docker与Laravel一起使用时连接拒绝postgresql