洛谷p1427小鱼的数字游戏
时间: 2024-06-14 14:08:21 浏览: 104
小鱼的数字游戏c++.md
洛谷p1427题目是关于小鱼的数字游戏题目描述如下:
小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字按照规定处理。游戏规则是:对于给定的一串数字,小鱼要按照从左到右的顺序进行处理,每处理一个数字后,小鱼的得分就增加这个数字本身,然后把这个数字删除。同时,如果小鱼删除的数字左边有与之相同的数字,则小鱼的得分还要增加这个相同数字本身。小鱼需要你帮助它计算出最终得分。
例如,对于输入的数字序列:321321,小鱼的得分计算过程如下:
- 处理第一个数字3,得分为3,删除3后剩下的数字序列为21321。
- 处理第二个数字2,得分为3+2=5,删除2后剩下的数字序列为131。
- 处理第三个数字1,得分为5+1=6,删除1后剩下的数字序列为31。
- 处理第四个数字3,得分为6+3=9,删除3后剩下的数字序列为1。
- 处理第五个数字2,得分为9+2=11,删除2后剩下的数字序列为1。
- 处理最后一个数字1,得分为11+1=12,删除1后剩下的数字序列为空。
所以最终得分为12。
你可以通过编写程序来解决这个问题。具体的实现方式可以根据你使用的编程语言来确定。以下是一个可能的实现方式(使用C++语言):
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string nums;
cin >> nums;
int score = 0;
for (int i = 0; i < nums.length(); i++) {
int num = nums[i] - '0';
score += num;
// 删除左边与当前数字相同的数字
for (int j = i - 1; j >= 0; j--) {
if (nums[j] == nums[i]) {
score += num;
nums.erase(j, 1);
i--;
}
else {
break;
}
}
}
cout << score << endl;
return 0;
}
```
以上是一个简单的实现,通过遍历输入的数字序列,计算得分并删除相同的数字。最后输出得分。
阅读全文