列出所有9位數,它的前n位能被n整除
最簡單的是窮舉,不過那可要O(9*109),不可取
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> fun(int n)

{
vector<int> last,all;
int i,j,k;
for(i = 1;i < 10;++i)
all.push_back(i);
if(n == 1)
return all;
int size;
int num;
for(i = 2;i <= n;++i)
{
last = all;
all.clear();
size = (int)last.size();
for(j = 0;j < size;++j)
{
for(k = 0;k < 10;++k)
{
num = last[j] * 10 + k;
if(num % i == 0)
all.push_back(num);
}
}
last.clear();
}
return all;
}posted on 2007-04-16 17:29 Dain 閱讀(1151) 評論(5) 編輯 收藏 引用 所屬分類: 算法 、筆記
