编程题#1:含k个3的数
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
注意: 总时间限制: 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
1 #include <iostream> 2 using namespace std; 3 4 int main() { 5 int m, k, count=0; 6 cin >> m >> k; 7 bool right1 = false, right2 = false; 8 if (m % 19 == 0) { 9 right1 = true; 10 } 11 while (m > 0) { 12 if (m % 10 == 3) { 13 count++; 14 } 15 m /= 10; 16 } 17 if (count == k) { 18 right2 = true; 19 } 20 if (right1 && right2) { 21 cout << "YES"; 22 } else { 23 cout << "NO"; 24 } 25 return 0; 26 }