簡體   English   中英

沒有輸出? C++14

[英]No output? C++14

所以我試圖做一個叫做 3n+1 的挑戰,我必須告訴程序在 n=1 之前必須乘或除多少次,但我沒有從程序中得到任何輸出。 請幫忙? ps 我使用的是 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;
}

可能的修復:

#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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM