7-12【拓展编程_课后练习】【陈越教材 习题2.8】 输出全排列

标题7-12【拓展编程_课后练习】【陈越教材 习题2.8】 输出全排列 (20分)

请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间。

输入格式:
输入给出正整数n(<10)。

输出格式:
输出1到n的全排列。每种排列占一行,数字间无空格。排列的输出顺序为字典序,即序列a
​1
​​ ,a
​2
​​ ,⋯,a
​n
​​ 排在序列b
​1
​​ ,b
​2
​​ ,⋯,b
​n
​​ 之前,如果存在k使得a
​1
​​ =b
​1
​​ ,⋯,a
​k
​​ =b
​k
​​ 并且 a
​k+1
​​ <b
​k+1
​​ 。

输入样例:
3

输出样例:
123
132
213
231
312
321

这道题用到了回溯法·,自己跟着撸一遍就差不多能理解

#include<stdio.h>
#define max 20
int a[max];
void f(int n, int a[], int cur);
int main()
{
	int n;
	scanf("%d", &n);
	f(n, a, 0);
	return 0;
}
void f(int n, int a[], int cur)
{
	int i, j;
	if (cur == n) {
		for ( i = 0; i < n; i++) {
			printf("%d", a[i]);
		}
		printf("\n");
	}
	else {
		for (i = 1; i <= n; i++) {//作用是给a[cur]赋值,
			int flag = 1;
			for (j = 0; j < cur; j++) {//查找前面是否出现i;
				if (a[j] == i)flag = 0;
			}
			if (flag) {
				a[cur] = i;
				f(n, a, cur + 1);//下一个位置
			}
		}
	}
}

qqqqq

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
天梯图书阅览室是由陈越教授在浙江大学编写的一款用Python编程语言创建的阅览室系统。该系统的主要功能包括借阅图书、归还图书、查询图书等。 首先,用户可以通过系统进行图书的借阅。用户只需输入图书的编号和借阅数量,系统会检查图书是否可借,并记录借阅信息。同时,系统会显示借阅成功的提示信息,方便用户了解借阅情况。 其次,用户在完成阅读后,可以通过系统归还图书。用户只需输入图书的编号,系统会检查图书是否逾期以及是否借阅过,若符合条件,系统会更新图书的状态为已归还,并提醒用户归还成功。 此外,用户还可以通过系统进行图书的查询。用户可以根据图书的名称、作者或关键字进行查询,系统会提供相关的图书信息,包括图书的名称、作者、出版日期等。同时,用户还可以查看图书的借阅情况,知道当前是否有其他人正在借阅该图书。 天梯图书阅览室还提供了管理员功能。管理员可以对图书进行管理,包括添加图书、删除图书和修改图书信息。管理员还可以查看所有图书的借阅情况,并进行逾期管理。 总结来说,天梯图书阅览室是一款功能齐全的阅览室系统,通过使用Python编程语言,实现了用户的借阅、归还和查询功能,以及管理员的图书管理和逾期管理功能。这个系统可以极大地提高图书管理的效率和便利性,方便用户进行图书的借阅与归还。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值