X从1到N的倍数

2024-05-29 00:03:13 发布

您现在位置:Python中文网/ 问答频道 /正文

程序接受两个整数(N,X)并打印X从1到N的所有倍数

我的代码:

    N, X = [int(val) for val in input().split()]
    for ctr in range(X,N+1):
         print(ctr, end=" ")

预期产出:

20 2

2 4 6 8 10 12 14 16 18 20

实际产量:

20 2

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Tags: 代码in程序forinputrange整数val
3条回答
N, X = [int(val) for val in input().split()]
for ctr in range(X,N+1):
     if ctr % X == 0:
         print(ctr, end=" ")

您可以使用%(模)运算符

基本上,当你有X的倍数时,ctr除以X的剩余部分等于0

这就是%检查的内容

因为range(X,N+1)给出了从X开始到N的所有数字,所以永远不会筛选出可被x整除的数字

这是一种通过求N/x的商来生成所有倍数的方法:

>>> def foo(n, x):
...     quotient = n // x
...     return [i*x for i in range(1, quotient + 1)]
...
>>> foo(20, 2)
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
>>> foo(13, 3)
[3, 6, 9, 12]

请注意,Python的range允许您使用一个step参数来完成这项工作,这几乎很简单:

>>> n,x = 20, 2
>>> list(range(x, n+ 1, x))
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
>>> n,x = 13, 3
>>> list(range(x, n+ 1, x))
[3, 6, 9, 12]
N, X = [int(val) for val in input().split()]
for ctr in range(X, N+1, X):
     print(ctr, end=" ")

将step参数添加到range函数中

相关问题 更多 >

    热门问题