C++中的故障求取輸出

我們在作業(yè)中收到一個問題。我在解釋它時遇到了困難,所以我用c++用同樣的條件重寫了它。然而,我似乎無法獲得問題中列出的正確輸出。有誰能建議我怎么做?

這是一個小問題。

這是我的代碼:

    #include <iostream>
    #include <string>
    using namespace std;
    int main(){
        int n; //AreWeThereYet
        string a;
        a="Yes we have arrived";
        string b;
        b="We just left";
        string c;
        c="That was annoying";
        string d;
        d="Almost";
        int i;
    
        cout << "enter n" << endl;
        cin >> n;
    
        for(int i=0;i<=n;i++){
            //here starts the calc
            if(n==0){
                cout << a << endl;
                return 0;
            }
            if(n>5){
                cout << b << endl;
                n=(n-1);
            }else if(n>1){
                n=(n-2);
                cout << c << endl;
            }else{
                cout << d << endl;
                n=(n-1);
            }
        }
    }

循環(huán)似乎無法輸出第一個和最后一個問題。

我想,如果我重復這個問題,我可以通過反復試驗來獲得我需要的答案。下面我附上了我的輸出圖像。我預計輸入“1”將輸出“幾乎”,然后是“是的,我們已經(jīng)到了”。

Current output

? 最佳回答:

我們可以檢查并討論第一個案例。

輸出應該是:

Almost
Yes we have arrived
That was annoying
That was annoying

如果你畫一條數(shù)字線:

<- <0  -         0         -   1  -      2-3-4-5    -   6+       ----->
 Almost|Yes we have arrived|Almost|That was annoying|We just left|

然后,我們只看輸出并開始推理。

幾乎出現(xiàn)在負片和1上。我們可以排除負數(shù),因為沒有辦法從負數(shù)跳到正數(shù),因為每個例子都做減法。所以,第一個“幾乎”意味著n是1。這就解釋了前兩行,但不是最后兩行。那么,我們怎么會說“那很煩人”?

它需要n在[2,5]范圍內(nèi)。注意,在這種情況下,它首先進行遞歸調(diào)用,然后打印“這很煩人”。那么,n的起始值是多少呢?它可以落在'That was perating'塊中,并稱之為'Almost'塊?

答案是3。假設n=3,我們將手動遍歷算法。

當n==3時,就進入n>1的狀態(tài)。它要做的第一件事是用值n-2=1調(diào)用自己。這將打印“幾乎”,然后打印“是的,我們已經(jīng)到達了”,因為帶有“幾乎”的塊用n-1=0調(diào)用自己。現(xiàn)在所有的嵌套調(diào)用都處理好了,當n==3時,我們返回到初始塊,并打印“that was peating”,但只打印一次。所以,3是不對的。

如果我想再次打印'That was perating',那么我只需要將n增加到4。

我們可以快速檢查n=4。我將降落在“惱人”塊,打一個電話與n-2=2和土地在“惱人”塊再次(我們需要打印'這是惱人的兩次),并作出另一個電話與n-2=0。我們跳過了“差不多”,所以4是不對的。

所以我們看5。5 - 2 = 3, 3 - 2 = 1. 一直跟蹤,應該會產(chǎn)生相同的輸出。

沒有密碼,只有一條號碼線和追蹤電話。這可以通過物理記事卡或繪制遞歸堆棧來完成。

如果你仔細看第三個輸出,你應該注意到它已經(jīng)基本解決了,因為最后四行和我們剛剛解決的塊是一樣的。

這是一個極好的problem-solving技巧;使用以前解決的問題來分解和解決更大的問題。這就是為什么這個任務最好不用代碼來完成,你可以想出解決方案。其他人的解決方案最終成為你自己池中唯一的解決方案,你會更加掙扎。

主站蜘蛛池模板: 好吊视频一区二区三区| 亚洲色婷婷一区二区三区| 亚洲一区二区三区无码国产| 日韩久久精品一区二区三区 | 精品视频一区二区三区在线观看| 国产香蕉一区二区精品视频| 久久久久人妻精品一区三寸蜜桃| 无码人妻精品一区二区三区久久久 | 日本一区二区三区免费高清| 国产成人无码精品一区二区三区| 亚洲AV无码一区二区三区国产| 国产伦精品一区二区三区四区 | 亚洲综合国产一区二区三区| 日亚毛片免费乱码不卡一区| 波多野结衣中文一区| 国产精品无码一区二区三区在| 无码人妻精品一区二区蜜桃| 3D动漫精品一区二区三区| 亚洲高清一区二区三区| 国产精品夜色一区二区三区| 亚洲av色香蕉一区二区三区蜜桃| 2018高清国产一区二区三区| 国产福利91精品一区二区三区| 精品视频一区二区三三区四区| 久久国产精品视频一区| 国产福利精品一区二区| 91video国产一区| 亚洲色一区二区三区四区| 国产精品视频一区国模私拍| 日韩三级一区二区三区| AV怡红院一区二区三区| 夜夜添无码一区二区三区| 亚洲狠狠狠一区二区三区| 亚洲av无码片vr一区二区三区| 日韩精品国产一区| 国产精品女同一区二区久久| 一区二区三区国产精品| 欧美日本精品一区二区三区| 精品视频一区二区三区在线播放| 久久久久人妻一区精品| 国产福利一区二区三区|