没有输入,按照字典序输出所有 1 2 3 4 5 的全排列。
希望不要用递归,递归不会啊!
1条回答 默认 最新
关注#include <stdio.h> const int N = 5; int h[6]; int main() { int i, j, k, l, m; for(i = 1; i <= N; ++i) { h[i] = 1; // (1) for(j = 1; j <= N; ++j) { if(h[j]) continue; // (2) h[j] = 1; for(k = 1; k <= N; ++k) { if(h[k]) continue; // (3) h[k] = 1; for(l = 1; l <= N; ++l) { if(h[l]) continue; // (4) h[l] = 1; for(m = 1; m <= N; ++m) { if(h[m]) continue; // (5) printf("%d%d%d%d%d\n", i, j, k, l, m); } h[l] = 0; // (6) } h[k] = 0; // (7) } h[j] = 0; // (8) } h[i] = 0; // (9) } return 0; }- $(1)(2)(3)(4)(5)$ 代表标记;
- $(6)(7)(8)(9)$ 代表标记置空;
扩展阅读
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报