A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

刀叨

初级黑马

  • 黑马币:22

  • 帖子:7

  • 精华:0

© 刀叨 初级黑马   /  2015-6-25 20:30  /  474 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

用递归法求n!。
分析:n!本身就是以递归的形式定义的。

n!=1(n=0,1)
n!=n(n-1)! (n>1)
求n!先求(n-1)! ,而求(n-1)!又需要求(n-2)!,以此类推,直到最后0!,而0!=1。所以程序如下:
  1. #include<stdio.h>

  2. long fac(int n)
  3. {
  4.       long  f;
  5.      if(n==0||n==1)
  6.       {
  7.           f=1;
  8.       }else{
  9.                f=fac(n-1)*n;
  10.              }
  11.        return(f);
  12. }

  13. main()
  14. {
  15.     int n;
  16.     long y;
  17.    printf("input a inteager number: \n");
  18.    scanf("%d",&n);
  19.    y=fac(n);
  20.    printf("%d!=%ld\n",n,y);
  21.    getch();
  22. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马