令所有满意的词语:关于C语言的一道题目
来源:百度文库 编辑:高校问答 时间:2024/10/06 23:46:16
运行示例:
input n r: 5 3
543,542,541,532,531,521,432,431,421,321
程序源码如下:
#include <stdio.h>
#include <stdlib.h>
int *a;
int n;
int r;
int is_first = 1;
void combin(int index, int max_num)
{
int i;
if (index >= r)
{
if (!is_first)
printf(",");
else
is_first = 0;
for (i = 0; i < index; i++)
printf("%d", a[i]);
return;
}
for (i = max_num; i >= 1; i--)
{
a[index] = i;
combin(index + 1, i - 1);
}
}
int main()
{
int i;
printf("input n r: ");
scanf("%d%d", &n, &r);
if (n < r)
return 0;
a = (int *)malloc(sizeof(int)*n);
if (a)
{
combin(0, n);
printf("\n");
free(a);
}
return 0;
}
用递归法解决,很容易哦
121212
great_wh解法漂亮,佩服!佩服~
对,用递归很容易实现的。
radix排序.这种排序好,你自已去查一下吧.如果你不是学算法.