我怎么能把c ++转换成python

时间:2017-11-16 19:03:42

标签: python c++ algorithm

#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++) 

我做错了什么?

2 个答案:

答案 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