C语言中1~n(n<=9)的全排列问题

您所在的位置:网站首页 c语言输出所有组合 C语言中1~n(n<=9)的全排列问题

C语言中1~n(n<=9)的全排列问题

2024-07-08 21:46| 来源: 网络整理| 查看: 265

首先,这个问题涉及的知识点包括:栈和递归调用;

以n=3为例,全排列为:123,132,213,231,312,321。个数为n!,当n值较小时可以使用暴力循环得到结果。当n值较大时,可能会出现超时问题,这时就需要使用递归调用优化。

定义变量n,book数组用来判断当前位置有没有遍历,a数组存放1-9,栈stc存放排列数组,top为栈顶,数组适量开大一些。

int n,book[20]; int a[20]; int stc[20],top;

主函数部分为

int main() { memset(book,0,sizeof(book)); scanf("%d",&n); int i; for(i=1; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3