第一位能被1整除,前兩位能被2整除,...,前九位能被9整除
阿新 • • 發佈:2018-07-31
一位 != main std ostream include ++ true tor
#include<iostream> #include<vector> using namespace std; void nineBitInteger(int k, long long a, bool *check, vector<long long> &result) { //判斷是否可以被位數(k)整除,不可則結束 if (k&&a%k != 0)return; //第9位也符合條件則將數A保存起來 if (k == 9) { result.push_back(a); return; } //遞歸過程 for (int i = 1; i <= 9; i++) { if (!check[i]) { //1-9這九個數,其中檢測過則賦值為1 check[i] = 1; nineBitInteger(k + 1, a * 10 + i, check, result); check[i] = 0; } } }
void main() { bool check[10]; memset(check, 0, sizeof(check)); vector<long long> result; nineBitInteger(0, 0, check, result); for (unsigned int i = 0; i < result.size(); i++) { cout << result[i] << endl; } cout << endl; }
第一位能被1整除,前兩位能被2整除,...,前九位能被9整除