组合数这个问题,我不知道还有其他什么方法 ,只记得学长说,用递归;
最开始自己思考的方法只是循环,就只出现了一部分的组合数,肯定有哪里漏掉的
后来学长讲了递归,开始好不容易懂了,但是后来,自己再看,就又会忘
后来自己一个一个将那些函数调用一个一个地写出来,才得到了最终结果,感觉,当初学长想到这个方法,真是太牛叉了~~
废话不多说,放代码~~
#include <stdio.h>
void fun(int a,int b,int v)
{
if(b==0)
{
printf("%d\n",v);
return ;
}
for(int i=a;i>=b;i--)
fun(i-1,b-1,v*10+i);
}
int main()
{
int n,r;
scanf("%d%d",&n,&r);
fun(n,r,0);
return 0;
}