题目描述
输入两个正整数 m 和 k,其中 1≤10151<m≤1015,1≤151<k≤15 ,判断 m 是否恰好含有 k 个 3,如果满足条件,则输出 YES
,否则,输出 NO
。
输入格式
输入一行,为两个整数 m,k,中间用单个空格间隔。
输出格式
满足条件,则输出 YES
,否则,输出 NO
。
输入输出样例
输入 #1复制
43833 3
输出 #1复制
YES
该题目中m的数字较大,需要用到long long 而k可能是两位数,可能是一位数,如果判断其数据匹配个数,较复杂,所以使用字符串的方法去匹配,更简单一些。
注意:题目是判断是否是k个3,不是判断k是否为m的子字符串
#include <stdio.h>
int main()
{
char n;//读入的字符
int k,cnt=0;
while(scanf("%c",&n)&&(n!=' '))//终止条件:读入空格(getchar会读空格)
if(n=='3')
cnt++;//判断(注意:是字符3)
scanf("%d",&k);
if(cnt==k)
printf("YES");
else
printf("NO");//判断,输出
return 0;
}