首页 > 解决方案 > 读取 2 个正整数并仅使用“while”打印它的第一个倍数的程序

问题描述

我正在尝试编写一个读取 2 个正整数(m 和 n)的程序,然后仅使用 while 循环打印 m 的前 n 个正整数。

这是原始问题

用 Python 3.x 语言编写一个程序,读取两个正整数 m 和 n,并打印前 n 个是 m 倍数的正整数。

代码的输出应如下所示:

Type a positive integer for m: 9 
Type a positive integer for n: 5 
The first 5 positive integers multiples of 9 are:
9
18
27
36
45

所以到目前为止我已经做了:

m = int(input("Type a integer for m: "))
n = int(input("Type a integer for n: "))
i = 1
print()
print("The first ",n,"positive integers multiples of ", m," are:")
while i <= n:
    m = m * i
    print(m)
    i = i + 1

我想了解如何解决这个问题,我意识到使用 for 或者这样做会更容易

标签: pythonpython-3.xwhile-loop

解决方案


你的问题在这一行

m = m * i

您正在缓存一个中间值,然后在下一次迭代中将其相乘,因此第一次乘以您的m但下一次迭代您将乘以前一个中间值而不是原始值,m
您可以将循环更改为:

while i <= n:
    print(m * i)  #  you don't need to save the intermediate result, you can just print it
    i = i + 1

推荐阅读