描述
输入二个正整数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
思考点
可以使用数组来记录m各个位上的值,并且可以单独写一个函数来调用
#include <iostream>
using namespace std;
int countk(int m) {
int num[5] = { 0 };
int count = 0;
num[0] = m / 10000;
num[1] = m % 10000 / 1000;
num[2] = m % 1000 / 100;
num[3] = m % 100 / 10;
num[4] = m % 10;
for (int i = 0; i < 5; i++) {
if (num[i] == 3) {
count++;
}
}
return count;
}
int main() {
int m, k;
int num[5];
cin >> m >> k;
if (m % 19 == 0) {
int count = countk(m);
if (count == k) {
cout << "YES" << endl;
}
else{
cout << "NO" << endl;
}
}
else {
cout << "NO" << endl;
}
return 0;
}