c++ 60pts求调

B2078 含 k 个 3 的数

DaoXiang007 @ 2023-09-09 06:40:29

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long sxy=0;
    int k;
    string a;
    cin>>a>>a>>k;
    for(int i=0;i<=a.size();i++){
        if(a[i]=='3'){
            sxy--;
        }
    }
    if(sxy==0) cout<<"YES"<<endl;
    else cout<<"NO"<<endl;
    return 0;
}

by shashadejianzhang @ 2023-09-09 07:28:15

首先,a 输入了两次,这是错的写法,直接写成

cin>>a>>k;

即可;

其次,sxy未赋值,从始至终都是0,可以直接将sxy改为k。

cin>>a>>k;
for(.....){
    if(.....)
        k--;
}
if(k==0) .....
else .....;

最后,由于a是一个字符串,for循环中应是i<a.size()而不是i<=a.size()。


by MarSer020 @ 2023-09-09 07:28:26

@DaoXiang007

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long sxy=0;
    int k;
    string a;
    cin>>a>>k;
    for(int i=0;i<=a.size();i++){
        if(a[i]=='3'){
            sxy++;
        }
    }
    if(sxy==k) cout<<"YES"<<endl;
    else cout<<"NO"<<endl;
    return 0;
}

by junjie_zhao @ 2023-09-09 08:12:30

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    long long n;
    int k,sum=0,c;
    cin>>n>>k;
    long long t;
    t=n;
    while(t>0)
    {
        c=t%10;
        if(c==3)
            sum++;
        t/=10;
    }
    if(sum==k)cout<<"YES";
    else cout<<"NO";
    return 0;
}

by DaoXiang007 @ 2023-09-09 13:50:11

@junjie_zhao 谢谢


by DaoXiang007 @ 2023-09-09 13:52:54

@MarSer020 谢谢捏:)


|