中易网

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

答案:5  悬赏:20  
解决时间 2021-02-15 05:38
用c语言,利用递归函数求n!,由键盘输入任一整数,求n!
最佳答案
【C语言の不懂,抄个加法供参考。编写程序,用递归函数完成,求整数1+……+n的和】
#include
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);
}
}
全部回答
#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 ", _rec(n));
system("pause");
return 1;
}
fun(int i)
{
if (i==0)
return 1;
else
returni*fun(i-1);
}
需要计算的数字传递进来就可以了

首先明确题目要求:递归函数,求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
}
//利用递归函数求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 ",jc(n));
      }
     return 0;
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
天和防务地址有知道的么?有点事想过去
nba 2017季后赛哪些队已确定晋级
宽带20w和50w的费用一样吗
<<惠子相梁>>中体现了庄子怎样的性格特点
整牙上下都需要整吗?
油烟机自动清洗和蒸汽洗哪个好
牡丹花的传说
星月入手一个月 已挂瓷,每天盘十个小时,还
这题不会做…
我不想去取邮局的退件怎么办?
洪湖市依美特制衣公司地址在什么地方,想过去
阿里巴巴如何绑定支付宝账号!本人一有支付宝
寻一个很久前的单机游戏大约在02年那会玩的
下载到电脑里的图片如何查询URL地址?谢谢了
室外布网线需要注意什么 ?
推荐资讯
仇湖信用社这个地址在什么地方,我要处理点事
小明和小强早上早上同时从同一地点沿河边同向
中国电信(天翼光荣农民街手机卖场)地址在哪,
鸿海石材地址在什么地方,想过去办事
四通窗帘在什么地方啊,我要过去处理事情
为什么System.out.println(1/2)会输出0
衢州南站到杭州南站快客时刻表
米市桥南路我想知道这个在什么地方
恒源祥毛线我想知道这个在什么地方
要什么没什么的男人又不爱卫生而且还拈花惹草
有记得一部老机器人动画片吗
香港1993年的五元硬币等于多少人民币?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?