C++编程题#1:含k个3的数

Posted on 2018-11-20 20:01  第三类  阅读(2706)  评论(0)    收藏  举报

 

描述

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

 1 #include<iostream>
 2 using namespace std;
 3 int f(int x)
 4 {
 5     static int m = 0;//注意,这里使用了静态局部变量,否则每次载入递归函数,m会被重置
 6     if (x % 10 == 3) //对正整数求模,相当于从最后一位开始判断是否为3
 7     {
 8         m++;
 9     }
10     if ((x / 10) != 0)
11     {
12         f(x / 10);
13     }
14     else
15         return m;
16 }
17 int main()
18 {
19     int a , b = 0;
20     cin >> a >> b;
21     if (a % 19 == 0)
22     {
23         if (f(a) == 3)
24         {
25             cout << "yes";
26         }
27         else (cout << "no");
28     }
29     else (cout << "no");
30 }