一.问题描述和要求
问题描述 近来,跳一跳这款小游戏风靡全国,受到不少玩家的喜爱。 输入格式 输入包含多个数字,用空格分隔,每个数字都是1,2,0之一,1表示此次跳跃跳到了方块上但是没有跳到中心,2表示此次跳跃跳到了方块上并且跳到了方块中心,0表示此次跳跃没有跳到方块上(此时游戏结束)。 输出格式 输出一个整数,为本局游戏的得分(在本题的规则下)。 样例输入 1 1 2 2 2 1 1 2 2 0 样例输出 22 数据规模和约定 对于所有评测用例,输入的数字不超过30个,保证0正好出现一次且为最后一个数字。 |
二.解答
这一题主要就是三种情况。用a记录上次的得分,用sum记录总分数,用n记录当前读取到的数字。
(1)第一次跳跃或上次得分为1,并且当前数字为2时,得两分
(2)除第一种情况,并且n=2时,此次得分为上次得分加2分
(3)其余情况得1分
具体代码如下:
#include<stdio.h>
int main(){
int n;
int sum=0;//记录总分数
int a=0;//记录上一次得分
while(1){
scanf("%d",&n);
if(n==0) break;
if((sum==0||a==1)&&n==2){
sum+=2;
a=2;
}else if(n==2){
sum=sum+a+2;
a=a+2;
}else{
sum++;
a=1;
}
}
printf("%d\n",sum);
return 0;
}