TB椰程 TypeBuddy 打字搭子

2019 数字游戏 · 方案一 逐字符统计

CSP-J 标程 · 复赛真题 · 代码 · cpp · 难度 1/5 · 共 623 字

扫一遍字符串数 '1' 的个数

  • 2019
  • 字符串

正文

// CSP-J 2019 复赛 T1 · 数字游戏
// 原题:https://oj.yecheng.tv/p/CSPJ2019A
// 题意:小 K 发来一个长度固定为 8 的 01 串,问里面有几个字符 '1'。
//
// 方案一 · 逐字符统计(最通用的写法)
// 拿到字符串从头扫到尾,看到 '1' 就把计数器加一。
// 小技巧:字符 '1' 减字符 '0' 刚好等于数字 1,所以写 ans += s[i] - '0'
// 也能得到同样的结果,而且这个写法对 0 到 9 都成立。
// 复杂度:时间 O(|s|),空间 O(1)。

#include <bits/stdc++.h>
using namespace std;

int main() {
    // CSP 复赛标准写法:文件输入输出,文件名与题目一致
    freopen("number.in", "r", stdin);
    freopen("number.out", "w", stdout);

    string s;
    cin >> s;

    int ans = 0;
    for (int i = 0; i < (int)s.size(); i++) {
        if (s[i] == '1') ans++;
    }

    cout << ans << "\n";
    return 0;
}

CSP-J 标程 · 复赛真题的其它内容

打字首页 · 词库画廊 · 编程打字 · 指法入门 · 天梯榜 · 数据分析 · 班级课堂 · 关于我们
椰程 TypeBuddy 打字搭子 —— 键盘指法练习 · 单词记忆 · 班级课堂 · 在线 PK