#include <iostream>
using namespace std;
int main() {
int n;
int i;
int k;
cout << "please insert n";
cin >> n; k=0 ;
for (i = n; i > 1; i--) {
cout << "/n "<< k << "+" << i << "=" << i + k++;
}
return 0;
}
我试图在python中重现上面的代码,但我不确定我的错误。我不确定如何从一个数字开始,然后递减直到满足条件。这就是我到目前为止所拥有的:
k=0
n=4
for i in range(n)
if i > 1 :
i-=1
k+=1
print(i+k++)
我做错了什么?
答案 0 :(得分:6)
n = int(input("please insert n : "))
k = 0
for i in range(n,1,-1):
print('\n',k,'+',i,'=',i+k)
k=k+1
range
解决了问题的一半。剩下的就是格式化和输入数字。
range(n,1,-1)
表示范围从n
开始,以1
结尾,并且在它们之间有一段-1
。
n, n+(-1), n+(-2),...,1
。
您的C ++程序生成错误的输出: -
/n 1+4=4/n 2+3=4/n 3+2=4
for(i=n,k=0; i > 1 ; i--,k++){
cout << "\n "<< k << "+" << i << "=" << i + k;
}
您的意思是\n
中的C++
(换行符)而不是/n
。
答案 1 :(得分:2)
你需要一个递减的for循环。
# range(4,1,-1) would give a list of [4,3,2]
# for loop iterates through each number.
k = 0
n = 4
# This iterates from n = 4 to 1
# decrementing one step at a time, needn't specifically handle i in your loop body.
# So i would get values of 4,3,2
for i in range(n,1,-1):
print(k,i)
# no ++ operator in python.
k+=1