解题思路
创建变量n,i,k,m 将i初始化为0
向 n、k输入
数位分离 当n是0时停止循环
定义num存 这个数的个位
如果这个数是3,执行计数器+1
缩小10倍n 准备下一次数位分离
最后按照要求判断并输出
完成代码
/*
描述
输入两个正整数 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。
*/
#include <bits/stdc++.h>
using namespace std;
int main() {
int n,i=0,k,m;
cin>>n>>k;//创建变量n 并输入
m = n; //m=n
while(n!=0) //数位分离 n==0停止循环
{
int num=n%10; //num存 n%10
if(num==3) //分离的数值 == 3
{
i++; //计数器 +1
}
n = n/10; //缩小10倍n
}
if(m%19==0 && i==k)
{
cout<<"YES";
}
else
{
cout<<"NO";
}
return 0;
}