描述
输入二个正整数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 1 #include<iostream> 2 2 using namespace std; 3 3 int f(int x) 4 4 { 5 5 static int m = 0;//注意,这里使用了静态局部变量,否则每次载入递归函数,m会被重置 6 6 if (x % 10 == 3) //对正整数求模,相当于从最后一位开始判断是否为3 7 7 { 8 8 m++; 9 9 } 1010 if ((x / 10) != 0) 1111 { 1212 f(x / 10); 1313 } 1414 else 1515 return m; 1616 } 1717 int main() 1818 { 1919 int a , b = 0; 2020 cin >> a >> b; 2121 if (a % 19 == 0) 2222 { 2323 if (f(a) == 3) 2424 { 2525 cout << "yes"; 2626 } 2727 else (cout << "no"); 2828 } 2929 else (cout << "no"); 3030 }