码迷,mamicode.com
首页 > 其他好文 > 详细

函数综合练习2152+2060

时间:2021-06-17 17:14:39      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:std   ++   stream   sam   div   NPU   重复   oar   lock   

2152 数字组合

现在小瓜有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;
}

 

  

2060 全排列

输入一个整数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;
}

 

函数综合练习2152+2060

标签:std   ++   stream   sam   div   NPU   重复   oar   lock   

原文地址:https://www.cnblogs.com/tianluman/p/14893141.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!