本文主要是介绍Coursera 学习记录:含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
思考点
可以使用数组来记录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;}
这篇关于Coursera 学习记录:含k个3的数(提取一个整数的各个位,并加以判断)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!