注意第一条,n和m的大小关系是有要求的
#include <stdio.h> #include <stdlib.h> static [local]1[/local]int sum = 0; int deal(int m,int n)//递归最重要的是递归出口,楼主这个似乎... { system("pause"); if (n==0) return 1; else if (n==1) return(m); else sum += deal(m-1,n-1) + deal(m-1,n); } int main() { deal(2,2); printf ("%d\n",sum); return 0; }
#include <stdio.h> static int sum = 0; int deal(int n,int m) { if(n>m-n) return deal(m-n,m); if(n==0) return 1; else if(n==1) return m; else return deal(n-1,m-1)+deal(n,m-1); } void main() { sum=deal(3,10); printf ("%d",sum); }