我正在尝试编写一个程序,该程序读取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或这样做会更容易
答案 0 :(得分:2)
您的问题在这一行
m = m * i
您要缓存一个中间值,然后在下一次迭代中将其乘以,因此,第一次您将m
乘以,但是在下一次迭代中,您将乘以先前的中间值而不是原始的{{1} }
您可以这样更改循环:
m
答案 1 :(得分:0)
Nullman的解决方法是正确的,无论如何,这里的代码已更正,以防万一它可以帮助您更好地理解错误:
m = 9
n = 5
i = 1
print()
print("The first ",n,"positive integers multiples of ", m," are:")
while i <= n:
multiple = m * i
print(multiple)
i = i + 1
您不能使用if
,但实际上可以使用for
:
m = 9
n = 5
i = 1
print()
print("The first ",n,"positive integers multiples of ", m," are:")
for i in range(1, n + 1):
multiple = m * i
print(multiple)
i = i + 1