2015-09-25 57 views
-8

所以我試圖做一個叫做3n + 1的挑戰,在那裏我必須告訴程序有多少倍乘或除直到n = 1,但是我沒有從程序中得到任何輸出。請幫忙? p.s.我使用C++ 14沒有輸出? C++ 14

#include <iostream> 
using namespace std; 
int n; 
int d=0; 
int main() { 
    cin>> n; 
    for(int i=n; i<=1;){ 
     if(n=1){ 
      cout<< d; 
     } 
     else if(n%2==0){ 
      d++; 
      n/2; 
     } 
     else{ 
      d++; 
      n*3+1; 
     } 
    } 
    return 0; 
} 
+0

你甚至不必在你的代碼中的''<<操作。 – owacoder

+0

'cout << d',而不是'cout >> d'。投票結束爲錯字。 – dasblinkenlight

+0

更改cout >>至cout << – Les

回答

2

可能的解決辦法:

#include <iostream> 
using namespace std; 
int main() { 
    int n; // you don't need the values to be global 
    int d=0; 
    cin>> n; 
    for(; ;){ // deleted i because it wasn't used 
     if(n<=1){ // compare here, don't assign here 
      cout<< d; 
      break; // exit the loop 
     } 
     else if(n%2==0){ 
      d++; 
      n=n/2; // please update n here 
     } 
     else{ 
      d++; 
      n=n*3+1; // also please update n here 
     } 
    } 
    return 0; 
}