【C++】CCFCSP201803-1跳一跳

來源:互聯網
上載者:User

標籤:預設   輸出   ted   ++   空格   res   現在   main   ...   

////  main.cpp//  CCFCSP20180318_1_跳一跳////  Created by T.P on 2018/3/23.//  Copyright ? 2018年 T.P. All rights reserved.///*跳一跳 1.0s 256.0MB 問題描述:   近來,跳一跳這款小遊戲風靡全國,受到不少玩家的喜愛。   簡化後的跳一跳規則如下:玩家每次從當前方塊跳到下一個方塊,如果沒有跳到下一個方塊上則遊戲結束。   如果跳到了方塊上,但沒有跳到方塊的中心則獲得1分;跳到方塊中心時,若上一次的得分為1分或這是本局遊戲的第一次跳躍則此次得分為2分,否則此次得分比上一次得分多兩分(即連續跳到方塊中心時,總得分將+2,+4,+6,+8...)。   現在給出一個人跳一跳的全過程,請你求出他本局遊戲的得分(按照題目描述的規則)。 輸入格式   輸入包含多個數字,用空格分隔,每個數字都是1,2,0之一,1表示此次跳躍跳到了方塊上但是沒有跳到中心,2表示此次跳躍跳到了方塊上並且跳到了方塊中心,0表示此次跳躍沒有跳到方塊上(此時遊戲結束)。 輸出格式   輸出一個整數,為本局遊戲的得分(在本題的規則下)。 範例輸入 1 1 2 2 2 1 1 2 2 0 範例輸出 22 資料規模和約定   對於所有評測用例,輸入的數字不超過30個,保證0正好出現一次且為最後一個數字。*/#include <iostream>using namespace std;int main(){    int a=0;    int b=0;    int c=1;    int s=0;    int s2=0;stop:    while(c!=0){        cin>>a;        if(a!=0){            if(a==1)                s=s+1;            else{                if(b==2){                    s2=s2+2;                    s=s+s2;                }                else{                    s2=2;                    s=s+2;                }            }        }        else{            c=0;            goto stop;        }        cin>>b;        if(b!=0){            if(b==1)                s=s+1;            else{                if(a==2){                    s2=s2+2;                    s=s+s2;                }                else{                    s2=2;                    s=s+2;                }            }        }        else{            c=0;            goto stop;        }    }    cout<<s<<endl;    return 0;}


改進(遞迴實現)
////  main.cpp//  CCFCSP20180318_1_跳一跳(遞迴實現)////  Created by T.P on 2018/3/23.//  Copyright ? 2018年 T.P. All rights reserved.//#include <iostream>using namespace std;int tyt(int &s,int &b){     //遞迴函式    int a;    cin>>a;                 //預設輸入沒有錯誤,即0,1,2    if (a==1){              //0沒有跳到、1跳到但不是正中心、2跳到且是正中心        s=s+1;        b=0;        tyt(s,b);    }    if (a==2){        b=b+2;        s=s+b;        tyt(s,b);    }    return s;               //其他情況(包含了0)}int main(){    int s=0;    int b=0;    s=tyt(s,b);    cout << s << endl;    return 0;}

【C++】CCFCSP201803-1跳一跳

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.