招商银行信用卡中心研发岗笔试第三题求解
在N个数中找出好数个数,我直接用的穷举法,但测试用例只通过了57%(并没报超过时间限制)。有人ac100%的吗?求解题思路
using namespace std; int isnotX(int a) { int temp = 0; if (a % 10 == 2 || a % 10 == 5 || a % 10 == 6 || a % 10 == 9 || a % 10 == 0 || a % 10 == 1 || a % 10 == 8) temp = 0; else temp = 1; if ((a / 10) == 0) return temp; else return temp + isnotX(a / 10); } bool isbug(int a) { while (true) { if (a % 10 == 0 || a % 10 == 1 || a % 10 == 8) { if (a / 10 == 0) return 1; else a = a / 10; } else return 0; } } int main() { int N; cin >> N; int count = 0; for (int i = 0; i < N; i++) { if ((isnotX(i) == 0) && (isbug(i) == 0)) { //cout << i << " "; count++; }#笔试题目##招商银行信用卡中心#} cout << count; system("pause"); }