我正在尝试创建一个创建n x n乘法表的程序。 分配使用重复加法而不是乘法函数是必需的。
这是我到目前为止的代码:
def main():
import math
print('Hello!')
n = (abs(eval(input("Enter n for the multiplication table n x n: "))))
n = int(n)
a = 0
for i in range(1,n+1):
for x in range(1,n+1):
a = i+a
print(i,' * ',x,' = ',a)
main()
它给我一个这样的输出:
Hello!
Enter n for the multiplication table n x n: 4
1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
1 * 4 = 4
2 * 1 = 6
2 * 2 = 8
2 * 3 = 10
2 * 4 = 12
3 * 1 = 15
3 * 2 = 18
3 * 3 = 21
3 * 4 = 24
4 * 1 = 28
4 * 2 = 32
4 * 3 = 36
4 * 4 = 40
输出显然不正确,那么我可以更改/添加什么来修复计算?
答案 0 :(得分:5)
在嵌套for循环中有一个变量a
,您可以为乘法表的不同值连续添加值。不要在每次迭代中添加i
到a
,而是a = i*x
。这将为您提供正确的乘法值。但是,如果您真的想重复添加,请在第二个for循环之外设置a = 0
,但在第一个循环内部设置,如下所示:
for i in range(1,n+1):
for x in range(1,n+1):
a = i+a
print(i,' * ',x,' = ',a)
a = 0
答案 1 :(得分:0)
对于print语句,请尝试使用:
print(i,' * ',x,' = ',i*x)
我不确定你使用'a'变量是什么,但是如果你想输出i和x的乘法仍然使用a,而是保持你的代码相同,只需改变你拥有的a for nest for loop:
a = i*x
希望这有帮助!
答案 2 :(得分:0)
在你的for循环中,你总是递增变量' a'本身就加入了“我”。每一次,你应该乘以i * x
print("Hello!")
n = input("Enter n for the multiplication table n x n: ")
n = int(n)
result = 0
for i in range(1,n+1):
for j in range(1, n+1):
result = i*j
print(i," * ", j, " = ", result)