C语言中1~n(n<=9)的全排列问题 |
您所在的位置:网站首页 › c语言输出所有组合 › C语言中1~n(n<=9)的全排列问题 |
首先,这个问题涉及的知识点包括:栈和递归调用; 以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 |