首页 > 代码库 > 2014-1
2014-1
1 #include <stdio.h> 2 3 int main() 4 { 5 int n,i , j, a[100], a1[100]; 6 while(scanf("%d", &n) == 1) 7 { 8 for(i = 0; i<n; i++) 9 {10 scanf("%d", &a1[i]);11 }12 13 for (i = n-1; i>0; i--)14 {15 for (j = 0; j<i; j++)16 {17 if (a1[j] > a1[j+1])18 {19 int t;20 t = a1[j];21 a1[j] = a1[j+1];22 a1[j+1] = t;23 }24 }25 }26 print_permutation(a, a1, n, 0);27 }28 }29 30 void print_permutation(int *a, int *a1, int n, int cur)31 {32 int i;33 if (cur == n)34 {35 for (i = 0; i<n; i++)36 {37 printf("%d ", a[i]);38 }39 40 printf("\n");41 }42 else43 {44 for (i = 0; i<n; i++)45 {46 int j, ok = 1;47 for (j = 0; j<cur; j++)48 {49 if (a[j] == a1[i])50 {51 ok = 0;52 break;53 }54 }55 56 if (ok)57 {58 a[cur] = a1[i];59 print_permutation(a, a1, n, cur+1);60 }61 }62 }63 }
1 #include <stdio.h> 2 3 int main() 4 { 5 int n,i , j, a[100], a1[100]; 6 while(scanf("%d", &n) == 1) 7 { 8 for(i = 0; i<n; i++) 9 {10 scanf("%d", &a1[i]);11 }12 13 for (i = n-1; i>0; i--)14 {15 for (j = 0; j<i; j++)16 {17 if (a1[j] > a1[j+1])18 {19 int t;20 t = a1[j];21 a1[j] = a1[j+1];22 a1[j+1] = t;23 }24 }25 }26 print_permutation(a, a1, n, 0);27 }28 }29 30 void print_permutation(int *a, int *a1, int n, int cur)31 {32 int i;33 if (cur == n)34 {35 for (i = 0; i<n; i++)36 {37 printf("%d ", a[i]);38 }39 40 printf("\n");41 }42 else43 {44 for (i = 0; i<n; i++)45 if( !i || a1[i]!=a1[i-1])46 {47 int j, c1 = 0, c2 =0, ok = 1;48 for (j = 0; j<cur; j++) if (a[j] == a1[i]) c1++;49 for (j = 0; j<n; j++) if (a1[j] == a1[i]) c2++;50 if (c1<c2)51 {52 a[cur] = a1[i];53 print_permutation(a, a1, n, cur+1);54 }55 }56 }57 }
2014-1
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。