Coursera 学习记录:含k个3的数(提取一个整数的各个位,并加以判断)

版权声明:知识内容为原创思考,转载请注明:转自 https://blog.csdn.net/SmartLoveyu/article/details/85221520

 

描述

输入二个正整数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;


}

猜你喜欢

转载自blog.csdn.net/SmartLoveyu/article/details/85221520
今日推荐