【小韦同学@神犇营-42-含k个3的数】
题目:
描述
输入两个正整数 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。
输入样例1
43833 3
输出样例1
YES
题解:
/*********************************************************************
* 题目:神犇营-42-含k个3的数
* 作者:小韦老师
* 邮箱:weichangying_wcy@163.com
* 题解:
思路:
取m的每一位,若为3则计数器加1。结束之后,判断一下两个条件:
① 计数器等于k
② m能被19整除
若以上两个条件都满足,则输出"YES",否则输出"NO"。
*********************************************************************/
#include <bits/stdc++.h>
using namespace std;
int main() {
int m, k;
cin >> m >> k;
int num_k = 0; // 计数器,记录3的个数
int temp = m; // 不要直接用m去运算,因为循环结束时值会为0
while (temp != 0) {
if (temp % 10 == 3) num_k++;
temp /= 10;
}
if (num_k == k && m % 19 == 0) cout << "YES";
else cout << "NO";
return 0;
}
我是小韦同学,企者不立,跨者不行,每天进步一点点。
欢迎大家多多交流,如果发现有错误,请多指正。有疑问的同学也可以留言评论或者发邮件。
邮箱:weichangying_wcy@163.com