题目描述要求找到一个正整数序列满足序列中所有的数不超过n序列长度为m且除了第一个数外所有的数都能被前一个数整除即是前一个数的倍数。我们想要知道这样的序列都有哪些输出所有满足要求的序列。输入第一行两个正整数nm。输出按字典序从小到大每行输出一个满足要求的序列数与数之间用空格分隔。样例输入 复制4 3样例输出 复制1 1 11 1 21 1 31 1 41 2 21 2 41 3 31 4 42 2
#include<iostream>
using namespace std;
int n, m;
int a[25];
void dfs(int k) {
if (k > m) {
for (int i = 1; i <= m; i++) {
cout << a[i] << " ";
}
cout << endl;
return;
}
for (int i = a[k-1]; i <= n; i++) {
a[k] = i;
dfs(k + 1);
}
}
int main() {
cin >> n >> m;
a[0] = 1;
dfs(1);
return 0;
}
原文地址: https://cveoy.top/t/topic/iDSt 著作权归作者所有。请勿转载和采集!