【发布时间】:2017-07-26 01:39:21
【问题描述】:
- 多个数字输入
以下是我选择开始编写代码的方式
def main():
numbers = input()
if numbers == "0":
exit()
else:
number_list = [int(i) for i in numbers.split()]
def calculate_gcd(number_list):
for i in range(1,smallest_number(number_list)+1):
for n in range(0,len(number_list)):
if number_list[n] % i == 0:
check_list += number_list[n]
more code - but not important for the question im asking
my code was hardly complete and only worked for max 3 size lists, sadly.
我是如何思考逻辑的
- 读取输入 -> 按空格分割,放入列表中
- 对列表进行排序
- 创建一个变量(除数),并将其设置为 1
- while divisor 5。如果每个元素 % 除数 == 0,则 gcd = 除数,则除数+=1
- 循环直到它不再为真
我发现的问题
- 它需要愚蠢的努力,它实际上不会运行并给出运行时错误。
- 我找不到检查 No.5 的方法(粗体) 我知道有 gcd 功能,但它只处理两个输入。 归结为同样的问题,我如何确保“所有”元素除以零?
对5号(粗体)进行gcd逻辑和评论有什么建议吗?
谢谢
【问题讨论】:
标签: python algorithm list greatest-common-divisor