python - 读取 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 或者这样做会更容易
解决方案
你的问题在这一行
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
推荐阅读
- python - 在 Python 中将数据框连接到 SQL 过程
- vue.js - Vue Echarts:使用数据集在雷达图中显示名称和值
- r - R 中的 menu() 将后续代码作为输入
- sql - 使用 Spark 或 SQL 分析稀疏时间序列事件
- c++ - 与线程交互的协程
- python - 单击:将未指定的选项添加到管道
- ios - 触摸时的 CAShapeLayer 和 UIBezierPath 工件
- obfuscation - 这是什么迷惑?
- java - 具有基于 XML 的安全配置的 Spring Boot 似乎没有使用正确的身份验证管理器?
- apache - 安装程序给出错误“您的 Web 服务器无法获取 http://localhost:8081/images/padlock.png”后,Bugzilla UI 无法正常工作。