試題編號: | 201803-1 |
試題名稱: | 跳一跳 |
時間限制: | 1.0s |
內存限制: | 256.0MB |
問題描述: |
問題描述 近來,跳一跳這款小遊戲風靡全國,受到不少玩家的喜愛。 輸入格式 輸入包含多個數字,用空格分隔,每個數字都是1,2,0之一,1表示此次跳躍跳到了方塊上但是沒有跳到中心,2表示此次跳躍跳到了方塊上並且跳到了方塊中心,0表示此次跳躍沒有跳到方塊上(此時遊戲結束)。 輸出格式 輸出一個整數,爲本局遊戲的得分(在本題的規則下)。 樣例輸入 1 1 2 2 2 1 1 2 2 0 樣例輸出 22 數據規模和約定 對於所有評測用例,輸入的數字不超過30個,保證0正好出現一次且爲最後一個數字。 |
C++實現:
#include<iostream>
using namespace std;
int main()
{
int s[30],n[30],r=0,i,j,k;
for(i=0;i<30;i++)
{
cin>>s[i]; //輸入跳一跳的全過程
if(cin.get()=='\n') //換行時結束
break;
}
if(s[0]==2)
n[0]=2; //若第一次跳到方塊中心,得2分
for(j=0;j<i;j++)
{
if(s[j]==0) //沒有跳躍到方塊上,遊戲結束
break;
else if(s[j]==1) //沒有跳到中心,得1分
n[j]=1;
else if(s[j]==2&&s[j-1]!=2) //跳到方塊中心,但上次跳躍不是中心,得2分
n[j]=2;
else if(s[j]==2&&s[j-1]==2) //跳到方塊中心,且上次跳躍也是中心,得分爲上次得分再+2
n[j]=n[j-1]+2;
else
cout<<"error!"<<endl;
}
for(k=0;k<j;k++)
{
r+=n[k];
}
cout<<r<<endl;
}