我正在用c ++和python编写算法。
算法是输出when n = 7, (0,1,2,3), (0,1,2,4) ... (3,4,5,6)
,我是通过嵌套的for语句实现的,但是c ++和python的值是不同的。
你能告诉我为什么吗?
例如,当我在范围内使用i时,我是否总是从0开始?如果可以设置range()
的初始值,请告诉我。
C ++
for(int i = 0; i < n; ++i)
for(int j = i+1; j < n; ++j)
for(int k = j+1; k < n; ++k)
for(int l = k+1; l < n; ++l)
cout << i << " " << j << " " << k << " " << l << endl;
Python
for i in range(0, n):
for j in range(i+1, n):
for k in range(i+2, n):
for l in range(i+3, n):
print(i, j, k, l)
答案 0 :(得分:0)
由@khelwood提供:
您的k
在C ++代码中以j+1
开始,在Python代码中以i+2
开始。您的l
起始值也不一致。代码不相同。
此外,您可以在range()
答案 1 :(得分:0)
循环中的索引不同:
for(int k = j+1; k < n; ++k)
for(int l = k+1; l < n; ++l)
和
for k in range(i+2, n):
for l in range(i+3, n):
基本上,C ++代码的内部循环中的索引会相应地更改为位于其上一行的循环。在您的python代码中,所有索引仅在第一个循环更改时更改。