题目
样例输入
1 1 2 2 2 1 1 2 2 0
样例输出
22
思路
没有技术含量的一道题,解题的关键是理解游戏规则。用state标记跳跃状态,以下是对游戏规则的分析:
1. state=1,跳到方块上但没跳到中心,得1分
2. state=2,跳到方块中心
- 这是本游戏第一次跳跃 或 前一次没跳到中心,得2分
- 这是连续第centre次跳到方块中心,得2*center分
3. state=0,游戏结束
代码
#include<bits/stdc++.h>
using namespace std;
int state,sum=0;
int main()
{int before=0;//记录上一次跳跃得分 int centre=1;//标记这是第几次跳到方块中心 while(cin>>state){if(state==1){sum+=1;before=1;centre=1;}else if(state==2&&before!=2)//包含第一次跳跃、前一次是1分两种情况 {sum+=2;before=2;centre++;}else if(state==2&&before==2){sum+=centre*2;before=2;centre++;}else if(state==0){break;}//cout<<sum<<endl;}cout<<sum;
}