跳一跳是一款微信小游戲,游戲規(guī)則非常簡單,只需玩家要從一個方塊跳到下一個方塊,如果未能成功跳到下一個方塊則游戲結(jié)束。
為茫崖等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及茫崖網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、茫崖網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
計分規(guī)則如下:
1. 如果成功跳到下一個方塊上,但未跳到方塊中心,加1分
2. 如果成功跳到下一個方塊上,且剛好跳到方塊中心,則第一次加2分,此后連續(xù)跳到中心時每次遞增2分。也就是說,第一次跳到方塊中心加2分,連續(xù)第二次跳到方塊中心加4分,連續(xù)第三次跳到方塊中心加6分,…,以此類推。
3. 如果未能成功跳到方塊上,加0分,且游戲結(jié)束
現(xiàn)在給出玩家一局游戲的每次跳躍情況,請計算玩家最終得分。
輸入說明
輸入為若干個非零整數(shù)(整數(shù)個數(shù)小于1000),表示玩家每次的跳躍情況。整數(shù)之間用空格分隔,整數(shù)取值為0,1,2。0 表示未能成功跳到下一個方塊上,1 表示成功跳到下一個方塊上但未跳到方塊中心,2 表示成功跳到下一個方塊上,且剛好跳到方塊中心。輸入的數(shù)據(jù)只有最后一個整數(shù)是0,其均非零。
輸出說明
輸出一個整數(shù)表示該玩家的最終得分。
輸入樣例
1 1 2 1 2 2 2 0
輸出樣例
17
經(jīng)過讀題,我們可以總結(jié)出如下要點(diǎn):
1.“輸入若干個整數(shù)”中這個“若干”怎么刻畫——解決辦法是定義數(shù)組以后,用0作為循環(huán)終止的條件;
2.積分規(guī)則2中說連續(xù)跳到中心時,所加的分?jǐn)?shù)會等差遞增——這是本題的核心難點(diǎn),我們利用循環(huán)來解決。
int step[1000],i;
int score=0;
for(i=0 ; i<1000 ; i++)
{
scanf("%d",&step[i]);
if(step[i]==0) //當(dāng)用戶輸入0時,進(jìn)入該判斷分支,break跳出循環(huán),輸入完畢
{
break;
}
}
for(i=0 ; step[i]!=0 ; i++)
{
}
if(step[i]==1)
{
score += 1;
}
這里很特殊。規(guī)則規(guī)定:連續(xù)第一次跳在中心(用戶輸入2)得2分,第二次得4分,以此類推。轉(zhuǎn)變說法,即:當(dāng)前step之前用戶輸入了‘多少’個連續(xù)的‘2’,就加(‘多少’+1)*2的分?jǐn)?shù)?,F(xiàn)在,我們要將這個‘多少‘計數(shù)出來,即引入count,利用循環(huán),得到該step前有多少個2。
if(step[i]==2)
{
int count=0,j;
for(j=i;step[j]==2;j--) //從該step向之前計數(shù),遇到1時停止計數(shù)
{
count++;
}
score += 2 * count;
}
1 #include2 int main() 3 { 4 int step[1000],i; 5 int score=0; 6 for(i=0 ; i<1000 ; i++) 7 { 8 scanf("%d",&step[i]); 9 if(step[i]==0) 10 { 11 break; 12 } 13 } 14 for(i=0 ; step[i]!=0 ; i++) 15 { 16 if(step[i]==1) 17 { 18 score += 1; 19 } 20 if(step[i]==2) 21 { 22 int count=0,j; 23 for(j=i;step[j]==2;j--) 24 { 25 count++; 26 } 27 score += 2 * count; 28 } 29 } 30 printf("%d",score); 31 return 0; 32 }