- 论坛徽章:
- 1
|
请教C中的组合问题
- #include <stdio.h>;
- #include <stdlib.h>;
- #include <string.h>;
- int arm,arn;
- int buf[32];
- int count = 0;
- void zuhe(int pos, int pre, int n);
- void zuhe(int pos, int pre, int n) {
- int i;
- if (n == 0) {
- for (i = 0; i < arn; i++) {
- printf("%d ",buf[i]);
- }
- printf("\n");
- count++;
- }
- else {
- for (i = pre+1; i < arm+1; i++) {
- buf[pos] = i;
- zuhe(pos+1, i, n-1);
- }
- }
- return;
- }
- int main(int argc, char *argv[]) {
- if (argc != 3) {
- printf("usage:%s m n\n",argv[0]);
- exit(1);
- }
- arm = atoi(argv[1]);
- arn = atoi(argv[2]);
- memset(buf,0,32);
- zuhe(0, 0, arn);
- printf("total:%d\n",count);
- exit(0);
- }
复制代码
写的不好,自己斟酌修改。 |
|