① 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<表达式>后面表达式的值返回给调用他的函数。举个例子:
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函数相乘,之后编写主函数的内容: