搜索
您的当前位置:首页正文

(洛谷题目)P5660 [CSP-J2019] 数字游戏

来源:易榕旅网

Hello大家好我是小亦,今天我们来讲的题目是来自CSP-J 2019的比赛题目名为:数字游戏话不多说将思路qwq:

这个问题是一个基础的字符串处理和计数问题。目标是统计一个长度为8的二进制字符串(01字符串)中数字1出现的次数。下面是解决这个问题的步骤和思路:

1. 理解问题

首先,我们需要清楚地理解题目的要求,即统计一个给定的8位长字符串中1的个数。

2. 读取输入

程序需要从输入中读取一个长度为8的字符串。这个字符串仅包含字符'0'和'1'。

3. 初始化计数器

在开始处理字符串之前,我们初始化一个计数器(通常初始化为0),用于记录字符串中1的个数。

4. 遍历字符串

使用一个循环遍历整个字符串。在每次迭代中,检查当前字符是否为'1'。

5. 更新计数器

每当在字符串中遇到一个'1'时,增加计数器的值。

6. 输出结果

遍历完整个字符串后,计数器中存储的就是字符串中1的总数。最后,将这个数值输出。

代码实现

在代码实现中,我们可以使用一个简单的循环来遍历字符串,并使用条件语句来检查每个字符。以下是实现这个思路的伪代码:


读取一个长度为8的字符串 s
初始化计数器 count 为 0

对于字符串 s 中的每个字符 c:
    如果 c 等于 '1':
        增加 count 的值

输出 count 的值

这个思路简单直接,易于实现,且效率高,因为它只需要一次遍历字符串。这种方法的时间复杂度是O(n),其中n是字符串的长度。对于这个问题,由于字符串长度固定为8,时间复杂度实际上是常数级别的,即O(1)。

已下为代码参考

#include <iostream>
#include <string>

using namespace std;

int main() {
    string s;
    cin >> s; // 读取01字符串

    int count = 0; // 初始化1的计数器
    for (char c : s) {
        if (c == '1') {
            count++; // 如果字符是1,计数器加1
        }
    }

    cout << count << endl; // 输出1的个数

    return 0;
}

代码监测为AC状态,放心食用~  仅供参考

因篇幅问题不能全部显示,请点此查看更多更全内容

Top