P5660 [CSP-J2019] 数字游戏 题解

· · 题解

本题比较简单,使用 char 数组或使用 string 都可,这里使用 string 并讲解几个新手易错点。

注意到本题保证输入的字符串长度一定为 8,且字符串中只包含字符 0 和字符 1,不难发现后者是不必要的。对于前者,由于字符串长度固定,如果你不想使用 s.size() 函数,请务必注意循环条件中的上界,应写为 i \le 7i<8

注意以上几点,因为字符串最大长度只有 8,因此我们开一个 cnt 变量用于记录字符串中 1 的个数,遍历整个字符串,当遇到字符 1 时给 cnt1,最后输出 cnt 即可。

#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
int main(){
    string s;
    cin>>s;
    int cnt=0;
    for(int i=0;i<s.size();i++){
        if(s[i]=='1')cnt++;
    }
    cout<<cnt;
    return 0;
}