当前位置:首页 » 编程语言 » c语言函数递归求阶乘
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言函数递归求阶乘

发布时间: 2022-01-20 01:21:00

c语言用 递归调用函数 的方法求n的阶乘,要具体解释一下,具体到每一行。

手机打的,排版不周,已调试。
#include

y(x)
{
if(x=0)
return
1;
eles
return
x*y(x-1);}
void
main()
{

int
n,result;

printf("请输入n的值:");

scanf("%d",&n);

result=y(n);

printf("%d!=%d\n",n,result);
}

② C语言怎么用递归法求阶乘

1、首先打开vc6.0,新建一个vc项目。

③ 关于c语言用递归计算阶乘 麻烦详细说明

楼主我举个例子来说吧,可以一讲就懂了。
计算facto(5):

首先facto(5):
x不等于1,做return (5 * facto(5-1));
发觉facto(5-1)=facto(4)也不知道,继续

facto(4):
x不等于1,做return (4* facto(4-1));
发觉facto(4-1)=facto(3)也不知道,继续

facto(3):
x不等于1,做return (3 * facto(3-1));
发觉facto(3-1)=facto(2)也不知道,继续

facto(2):
x不等于1,做return (2 * facto(2-1));
发觉facto(2-1)=facto(1)也不知道,继续

facto(1):
这个会了,是返回1,facto(1)=1

回到facto(2),返回 (2 * facto(2-1))=2

回到facto(3),返回 (3 * facto(3-1))=6

回到facto(4),返回 (4 * facto(3-1))=24

回到facto(5),返回 (5 * facto(5-1))=120

现在facto(5)也做完了,就结束了,返回到主程序,返回facto(5)的值120。

楼主,肯定对递归函数特别了解了吧。呵呵

④ c语言算n的阶乘的递归算法

思路:递归求阶乘函数,如果输入的参数等于1则返回1,否则返回n乘以该函数下次递归。

参考代码:

#include<stdio.h>
intfun(intn)
{
if(n==1||n==0)return1;//如果参数是0或者1返回1
returnn*fun(n-1);//否则返回n和下次递归的积
}
intmain()
{
intn;
scanf("%d",&n);
printf("%d ",fun(n));
return0;
}
/*
5
120
*/

⑤ C语言 输入三个整数,用递归函数求三整数阶乘之和

正整数N的阶乘:
import
java.util.Scanner;

//递归算阶乘
public
class
Demo2
{
//定义一个算阶乘的方法jieCheng()
public
static
int
jieCheng(int
n){
if(n==1){

//n值为1时返回1,跳出方法,停止计算
return
1;
}
return
n*jieCheng(n-1);

//当前值*(当前值-1)*(当前值-1-1)...*1
}

//main方法测试
public
static
void
main(String[]
args)
{
Scanner
input=new
Scanner(System.in);
System.out.print("请输入您要计算的阶乘数:");
int
n=input.nextInt();
System.out.println(n+"的阶乘结果是"+jieCheng(n));
}
}

1到正整数N的累加:
import
java.util.Scanner;

public
class
Demo3
{

//main方法测试

public
static
void
main(String[]
args)
{
Scanner
input=new
Scanner(System.in);
System.out.print("请输入要计算的数:");
int
n=input.nextInt();
System.out.println("1到"+n+"的和是:"+he(n));
}

//定义一个算阶乘的方法he()

public
static
int
he(int
n){
if(n==1){
return
1;
}
return
n+he(n-1);
}
}

⑥ c语言函数递归求阶乘的问题 求助大佬们

求阶乘递归函数调用时,num必须是大于0的,否则该递归函数无法结束,成为死循环,则没有输出值

⑦ c语言递归求阶乘

举例:用递归方法求n;

#include<stdio.h>

int main()

{

int n;

int y;

printf("input a integer number:");

scanf("%d",&n);

y=fac(n);

printf("%d!=%d ",n,y);

return 0;

}

int fac(int n)

{

int f;

if(n<0)

printf("n<0,data error!");

else if(n==0||n==1)

f=1;

else

f=fac(n-1)*n;

return(f);

}

(7)c语言函数递归求阶乘扩展阅读:

return用法:

return返回一个数值的意思就是把return&lt;表达式&gt;后面表达式的值返回给调用他的函数。举个例子:

int sum(int i,int j)

{

return i+j;

printf("这个语句不会被执行,因为该子函数执行到上面的return语句就无条件结束了");

}

main()

{

int a=10,b=11,c;

c=sum(a,b);

printf("%d",c);

}

程序的输出为:

21

这个21从何而来呢main函数调用sum(a,b)函数时将a的值赋给i,b的值赋给j,上面说了return i+j;会计算i+j的值也就是结果等于21,并将21带回给调用它的函数,即c=sum(a,b);相当于c=21,这个21就是由sum(a,b)中的return反回来的。

⑧ 用c语言的递归求阶乘

修改后的C语言程序:

#include"stdio.h"

intok(inta)
{
if(a==1)
a=1;
else
a=a*ok(a-1);
returna;
}

voidmain()
{
intb,n;
scanf("%d",&b);
n=ok(b);
printf("b!=%d",n);
}

⑨ c语言求1到n阶乘的和用递归

1、打开vc6.0,新建一个vc项目,添加头文件,添加一个空的main函数,这里先定义一个用来求阶乘的函数,函数的参数为i,阶乘就是不断的和前面的一个数相乘,这里就是不断和fact函数相乘,之后编写主函数的内容: