用c语言,利用递归函数求n!,由键盘输入任一整数,求n!

 我来答
Visr_午夜
推荐于2016-05-27 · TA获得超过2245个赞
知道小有建树答主
回答量:1009
采纳率:0%
帮助的人:379万
展开全部

首先明确题目要求:递归函数,求n!

递归函数的含义:

编程语言中,函数Func(Type a,……)直接或间接调用函数本身,则该函数称为递归函数。

n!表示阶乘函数,即1*2*3*……*n

下面给出代码:(C语言实现 )

比较简单的尾递归实现:

#include<stdio.h>
long digui(int n);  //递归函数声明
int main()
{
int n;  
scanf("%d",&n);
printf("the result is %ld",digui(n)); //打印出递归值
return 0;
}
long digui(int n)  //递归函数部分
{
if(n>1)   
return n*digui(n-1);   //调用递归,让n与n-1相乘,直到n<1时
return 1;   //n<1时,返回1,实现 n*(n-1)*(n-2)*……*3*2*1
}
匿名用户
推荐于2017-11-27
展开全部
//利用递归函数求n!,由键盘输入任一整数,求n!
#include<stdio.h>
unsigned long jc(unsigned  long n){
       if(n==1) return 1;
       else return n*jc(n-1);
}
int main()
{
     unsigned  long n;
     while(scanf("%ld",&n) != EOF)
      {
          printf("%ld\n",jc(n));
      }
     return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
仙戈雅3n
2015-03-20 · TA获得超过5790个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:886万
展开全部
#include <stdio.h>
#include <stdlib.h>

inline int _rec(int n){
if (n == 1) return 1;
else return n*_rec(n - 1);
}

int main(void){

int n = 1;

printf("n=");
scanf("%d", &n);

printf("%d\n", _rec(n));

system("pause");
return 1;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-03-20
展开全部
【C语言の不懂,抄个加法供参考。编写程序,用递归函数完成,求整数1+……+n的和】
#include <stdio.h>
int sum(int);
int main() {
int n;
scanf("%d", &n);
printf("1+...+%d = %d", n, sum(n));
return 0;
}
int sum(int x) {
if(x==1) {
return 1;
}
else {
return x+sum(x-1);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
青鸟中关村专家
2015-03-20 · 知道合伙人软件行家
青鸟中关村专家
知道合伙人软件行家
采纳数:1734 获赞数:8440
就职于北大青鸟中关村,自2004年踏入北大青鸟这个行业,已经有11年工作经验和8年的培训经验,寓教于乐

向TA提问 私信TA
展开全部
fun(int i)
{
if (i==0)
return 1;
else
return i*fun(i-1);
}

需要计算的数字传递进来就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式