题目描述
输入两个正整数 m 和 k,其中1 < m < 100000,1 < k < 5 ,判断 m 能否被19整除,且恰好含有k个3,如果满足条件,则输出YES,否则,输出NO。 例如,输入: 43833 3 满足条件,输出YES。如果输入:39331 3 尽管有3个3,但不能被19整除,也不满足条件,应输出NO。
输入
m 和 k 的值,中间用单个空格间隔。
输出
满足条件时输出 YES,不满足时输出 NO。
样例输入 复制
43833 3
样例输出 复制
YES
//这个题难点就在我们如何判断每一位的数是否为3
//所以想到我们利用循环,每一次都%10 判断结果是否为三
//设立旗帜 是三就旗帜上加一 不是三就等循环自然结束
#include<bits/stdc++.h>
using namespace std;
int main()
{
int m,a,b,k;
int sum=0; //旗帜
cin>>m>>k;
a=m;
while(m!=0) //这段代码本人原创 写完非常自豪
{
b=m%10; //每一次都%10 记录结果并判断
m=m/10; //每一次都/10 就是为了能走遍它的每一位数
if(b==3) //旗帜作用
sum++;
}
if(sum==k&&a%19==0)
printf("YES");
else printf("NO");
return 0;
}