zsms1996 @ 2024-12-24 14:59:30
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long m;
int k,a=0;
cin>>m>>k;
for(int i=1;(m/10)!=0;i++)
{
if(m%10==3)a++;
m=m/10;
}
if(k==a)cout<<"YES";
else cout<<"NO";
return 0;
}
by iceeci @ 2024-12-24 15:08:09
在for循环语句中不能写成“(m/10)!=0” 因为当数字为3时由于m=3,m/10=0 循环会立马终止,无法再计数。应写为m!=0
by exCat @ 2024-12-24 15:09:00
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long m;
int k,a=0;
cin>>m>>k;
for(int i=1;m!=0;i++)//问题在这
{
if(m%10==3)a++;
m=m/10;
}
if(k==a)cout<<"YES";
else cout<<"NO";
return 0;
}
by exCat @ 2024-12-24 15:10:09
@zsms1996
像你那样写,判不到最后以为,小于10的时候就直接结束了。
by yuhanlinluogu @ 2024-12-24 15:34:47
少循环了一次
#include<stdio.h>
int main(){
long long m;
int k,a=0;
scanf("%lld %d",&m,&k);
for(int i=1;m;++i){
if(m%10==3)++a;
m/=10;
}
if(k==a)puts("YES");
else puts("NO");
return 0;
}