用递归法求n!。
分析:n!本身就是以递归的形式定义的。
n!=1(n=0,1)
n!=n(n-1)! (n>1)
求n!先求(n-1)! ,而求(n-1)!又需要求(n-2)!,以此类推,直到最后0!,而0!=1。所以程序如下:- #include<stdio.h>
- long fac(int n)
- {
- long f;
- if(n==0||n==1)
- {
- f=1;
- }else{
- f=fac(n-1)*n;
- }
- return(f);
- }
- main()
- {
- int n;
- long y;
- printf("input a inteager number: \n");
- scanf("%d",&n);
- y=fac(n);
- printf("%d!=%ld\n",n,y);
- getch();
- }
复制代码
|
|