#include <stdio.h> #include <string.h> void swap(char *x, char *y) //交换 { char temp; temp = *x; *x = *y; *y = temp; } void permute(char *a, int l, int r) //88888888888回溯88888888888888 { int i; if (l == r) //66666666666666看是否到了末尾 8888888888888888 { for(i=0;i<=strlen(a)-1;i++) { printf("%c ",a[i]); } printf("\n"); } else { for (i = l; i <= r; i++) { swap((a+l), (a+i));//交换一下 permute(a, l+1, r); swap((a+l), (a+i));//交换回去 } } } int main() { char Ri[10]={},R[] = "123456789"; int m,i; scanf("%d",&m); for(i=0;i<=m;i++) { Ri[i]=R[i]; } permute(Ri, 0, m); return 0; }
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:1267 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:821 |
简单的a+b (C语言代码)浏览:574 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:1968 |
A+B for Input-Output Practice (I) (C语言代码)浏览:451 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:604 |
回文数(一) (C语言代码)浏览:1170 |
C二级辅导-求偶数和 (C语言指针动态内存法)浏览:661 |
Tom数 (Java代码)浏览:617 |
【亲和数】 (C++代码)浏览:553 |