码迷,mamicode.com
首页 > 其他好文 > 详细

组合数

时间:2015-08-10 12:04:35      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

时间限制:3000 ms  |  内存限制:65535 KB

难度:3
描述
找出从自然数1、2、... 、n(0<n<10)中任取r(0<r<=n)个数的所有组合。
输入
输入n、r。
输出
5 3
样例输出
543
542
541
532
531
521
432
431
421
321
太粗心了,该题的输出不要空格,我在输出时竟然加了空格,竟然没发现这个错误,技术分享
#include<stdio.h>
#include<string.h>
int a[20],v[20];
int n,m;
void dfs(int x,int min,int r)
{
	
	if(x>n)
	return ;
	if(min==m)
	{
		for(int i=0;i<m-1;i++)
		printf("%d",v[i]);
		printf("%d\n",v[m-1]);
		return ;
	}
	v[r]=a[x];
	//r++;
	dfs(x+1,min+1,r+1);

	dfs(x+1,min,r); 
}
int main()
{
	while(scanf("%d%d",&n,&m)!=EOF)
	{
		int i,j=0,k;
		//memset(v,0,sizeof(v));
		for(i=n;i>0;i--)
		a[j++]=i;
		
		dfs(0,0,0);
	}
	return 0;
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

组合数

标签:

原文地址:http://blog.csdn.net/l15738519366/article/details/47395545

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!