c++. 40分

B2078 含 k 个 3 的数

123_cjc @ 2023-08-28 17:34:40

#include<iostream>
using namespace std;
int main(){
    string a;
    cin>>a;
    long long s,k;
    cin>>s;
    for(int i=0;i<=a.size();i++){
        if(a[i]==3){
            k++;
        }
    }
    if(s==k){
        cout<<"YES";
    }
    else{
        cout<<"NO";
    }

}

by CleanIce @ 2023-08-28 17:40:36

@123_cjc

for(int i=0;i<=a.size();i++){

厉害……


by CleanIce @ 2023-08-28 17:41:44

@CleanIce

你的 k 不初始化吗?

非全局变量都需要初始化,不然其值就是随机的。


by wunaidedanjuan @ 2023-08-28 17:43:31

@123_cjc 建议如下:

  1. i<a.size() ,字符串 a 中的字符从第 0 位一直对应到 a.size()-1 位,所以遍历到 a.size()-1 即可
  2. 判断条件改为 a[i]=='3' ,因为 a 为字符串,所以判断时应判断其是否等于字符 3
  3. 给 k 赋初值为 0

by wunaidedanjuan @ 2023-08-28 17:44:16

@123_cjc 附微调代码 O v O :

#include<iostream>
using namespace std;
int main(){
    string a;
    cin>>a;
    long long s,k=0;
    cin>>s;
    for(int i=0;i<a.size();i++){
        if(a[i]=='3'){
            k++;
        }
    }
    if(s==k){
        cout<<"YES";
    }
    else{
        cout<<"NO";
    }

}

|