题目描述
解题思路
处理三种情况
0没成功,游戏结束
1没跳中中心,加一分
2跳中了中心,若上一次是第一次跳或者上一次得分为一分,则加2分,否则得分为上一次得分 + 2
代码实现
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 40;
int a[N];
int main()
{
int res = 0;
for (int i = 0; ; i ++)
{
cin >> a[i]; //a[i] 记录0, 1, 2
if (!a[i]) break; //0表示没有跳中,游戏结束
if (a[i] == 1) res += 1; //没跳到中心加一分
else
{
if (i == 0 || a[i - 1] == 1) //本局游戏的第一次跳跃或若上一次的得分为1分,则此次得分为2分
{
res += 2;
a[i] = 2; //用a[i]记录这次得分
}
else
{
res += a[i - 1] + 2; //连续跳到方块中心,此次得分比上一次得分多两分
a[i] = a[i - 1] + 2;
}
}
}
cout << res;
return 0;
}