标签:std ++ stream sam div NPU 重复 oar lock
现在小瓜有1到n这n个整数,他想知道用这n个整数组成一个长度为n的数字序列的所有方法(每个整数可以重复使用)。你能帮助他吗?
一行一个整数n(1<=n<=6)。
若干行,每行表示用1到n组成一个长度为n的数字序列的一种方法。所有方法按字典序输出。
2
1 1 1 2 2 1 2 2
#include <iostream> using namespace std; int n, ans[10]; void doit(int k) { if (k == n + 1) { for (int i = 1; i <= n; ++i) { cout << ans[i] << ‘ ‘; } cout << endl; return; } for (int i = 1; i <=n; ++i) { ans[k] = i; doit(k + 1); } } int main() { cin >> n; doit(1); return 0; }
输入一个整数n(n <= 9),输出1、2、3、······、n这n个数的全排列(按照字典序输出)。
一个整数n
多行,每行表示一种排列,行内使用空格分隔相邻两数。
3
1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1
#include <iostream> using namespace std; int n; int ans[10], book[10]; void doit(int k) { if (k == n + 1) { for (int i = 1; i <= n; ++i) { cout << ans[i] << ‘ ‘; } cout << endl; return; } for (int i = 1; i <= n; ++i) { if (book[i] == 0) { ans[k] = i; book[i] = 1; doit(k + 1); book[i] = 0; } } } int main() { cin >> n; doit(1); return 0; }
标签:std ++ stream sam div NPU 重复 oar lock
原文地址:https://www.cnblogs.com/tianluman/p/14893141.html