POJ NOI0105-30 含k个3的数

问题链接POJ NOI0105-30 含k个3的数

总时间限制:
1000ms
内存限制:
65536kB
描述

输入两个正整数 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。
样例输入
43833 3
样例输出
YES

问题分析

  一个简单的计算问题,跟进制有关,关键是如何取出一个数的各个位,对3的个数进行统计。

程序说明

  (略)


参考链接:(略)

AC的C++语言程序:

#include <iostream>

using namespace std;

int check(int m)
{
    int count = 0;
    while(m) {
        if(m % 10 == 3)
            count++;
        m /= 10;
    }

    return count;
}

int main()
{
    int m, k;
    bool flag;

    cin >> m >> k;

    flag = true;
    if(m % 19 != 0)
        flag = false;
    if(check(m) != k)
        flag = false;

    if(flag)
        cout << "YES" << endl;
    else
        cout << "NO" << endl;

    return 0;
}



posted on 2017-05-11 21:35  海岛Blog  阅读(556)  评论(0编辑  收藏  举报

导航