我试着编写程序,向用户询问正数,如果是奇数,软件会把这个数字中的所有奇数加起来,偶数也是一样的。在此之后,软件不停地询问数字,并做与以前相同的事情,直到用户输入0/负数。
在此之后,软件应该以最大和打印数字。有时起作用,有时不行。
代码:
def sum_Digits(n):
sum = 0
if n % 2 == 0: #For even numbers
while n>0:
if (n%10)%2 == 0:
sum += n%10
n = n//10
else:
n = n//10
print("sum: " , sum)
return sum
elif n % 2 != 0 : #For odd numbers
while n>0:
if (n%10)%2 != 0:
sum += n%10
n = n//10
else:
n = n//10
print("sum: " , sum)
return sum
def read_Numbers(N):
maX = 0
while N > 0: #while askNum Positive continue summing
suM = sum_Digits(N)
if suM > maX:
maX = N
N = int(input("Please eneter a Natural number: "))
if N <= 0:
return maX
def main():
num = int(input("Please enter a Natural number: ")) #asking the user to enter number
sum_Digits(num)
askNum = int(input("Please eneter a Natural number: "))
maxSum = read_Numbers(askNum)
print("Number with maximal sum: " , maxSum)
main()
发布于 2022-11-15 19:10:35
臭虫:
如果用户输入负数,它将继续循环并打印最后输入的数字,因为程序不检查负数。
修正:
我添加了一个条件,如果N <= 0:
return maX
,这将返回最后输入的正数。
臭虫:
sum_Digits(num)
我删除了这一行,因为它不需要,因为我们已经在主函数中调用了函数sum_Digits
https://stackoverflow.com/questions/74321983
复制相似问题