是我想得太简单了吗?

B2078 含 k 个 3 的数

ewf8888 @ 2023-12-04 20:55:25

#include <stdio.h>
int main ()
{
    long long k,m,a;
    scanf("%ld %ld",&m,&k);
    a=m/3.0;
    if(a>=k)
       printf("YES");
    else 
       printf("NO");
}

by Z_302 @ 2023-12-04 21:02:33

是的


by _Lazy_zhr_ @ 2023-12-04 21:06:09

只能说你的解有点……让人看不懂。

来康康正解吧,用字符串去做。

#include<bits/stdc++.h>
using namespace std;
string str;
int k,sum;
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin>>str;
    cin>>k;
    for(int i=0;i<str.length();i++)
    if(str[i]=='3')
    sum++;
    if(sum==k)
    cout<<"YES";
    else
    cout<<"NO";
    return 0;
}

by ljhtomorrow @ 2023-12-04 21:14:53

@FY_wanye 我觉得可以把断流删了,容易引起不必要的误会或问题


by ljhtomorrow @ 2023-12-04 21:17:35

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

@ewf8888 可以输入后对数进行处理,逐个判断每一位是否是三,在输出时判断


by L_MaJiaQi @ 2023-12-04 21:21:02

#include<bits/stdc++.h>
using namespace std;
int c,m,k,p[3];
int read(){
    int s=0,w=1;
    p[++c]=0;
    char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){s=s*10+ch-'0';if(ch-'0'==3)p[c]++;ch=getchar();}
    return s*w;
}
int main(){
    m=read();k=read();
    puts(p[1]==k?"YES":"NO");
    return 0;
}

快读你值得拥有


by ljhtomorrow @ 2023-12-04 21:29:43

@ewf8888 艹你是C


by _Lazy_zhr_ @ 2023-12-04 22:25:06

@ljhtomorrow 艹我也才发现。

快读是个好东西。


by ewf8888 @ 2023-12-05 12:57:50

@ljhtomorrow 我懂这个题目意思了,谢谢你大好人


by ewf8888 @ 2023-12-05 12:59:59

@YC_George 第一次听说快读......


by ewf8888 @ 2023-12-05 13:01:46

@FY_wanye 看不懂啊......


| 下一页