导航:首页 > 编程语言 > 计算递归函数编程

计算递归函数编程

发布时间:2023-02-09 10:04:52

① C语言编程:编写一个计算此函数的递归函数。帮忙给出运算结果,谢谢

#include<stdio.h>
intack(intm,intn);
intmain()
{
intm,n;
while(1)
{
printf("输入两个大于等于0的正整数m,n:");
scanf("%d%d",&m,&n);
printf("输出:%d ",ack(m,n));
}
return0;
}
intack(intm,intn)
{
if(m==0&&n>0)
returnn+1;
if(m>0&&n==0)
returnack(m-1,1);
if(m>0&&n>0)
returnack(m-1,ack(m,n-1));
return-1;
}

② 编写一个递归函数计算从1加到100的和

int fun(int x)
{
if(x>1)
return x+fun(x-1);
else
return x;
}
main()
{
int sum;
sum=fun(100);
printf("sum=%d ",sum);
}

(2)计算递归函数编程扩展阅读:

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

在数学上,关于递归函数的定义如下:对于某一函数f(x),其定义域是集合A,那么若对于A集合中的某一个值X0,其函数值f(x0)由f(f(x0))决定,那么就称f(x)为递归函数。

递归函数是一种计算过程,如果其中每一步都要用到前一步或前几步的结果,称为递归的。用递归过程定义的函数,称为递归函数,例如连加、连乘及阶乘等。凡是递归的函数,都是可计算的,即能行的 。

古典递归函数,是一种定义在自然数集合上的函数,它的未知值往往要通过有限次运算回归到已知值来求出,故称为“递归”。它是古典递归函数论的研究对象。

参考资料:递归函数 网络

③ C++编程:用递归函数求n!,其中n从键盘输入。

一个函数在它的函数体内调用它自身称为递归调用。这种函数称为递归函数。C语言允许函数的递归调用。在递归调用中,主调函数又是被调函数。执行递归函数将反复调用其自身,每调用一次就进入新的一层。
例如有函数f如下:
int
f(int
x)
{
int
y;
z=f(y);
return
z;
}
这个函数是一个递归函数。但是运行该函数将无休止地调用其自身,这当然是不正确的。为了防止递归调用无终止地进行,必须在函数内有终止递归调用的手段。常用的办法是加条件判断,满足某种条件后就不再作递归调用,然后逐层返回。下面举例说明递归调用的执行过程。
【例】用递归法计算n!
用递归法计算n!可用下述公式表示:
n!=1
(n=0,1)
n×(n-1)!
(n>1)
按公式可编程如下:
long
ff(int
n)
{
long
f;
if(n<0)
printf("n<0,input
error");
else
if(n==0||n==1)
f=1;
else
f=ff(n-1)*n;
return(f);
}
main()
{
int
n;
long
y;
printf("\ninput
a
inteager
number:\n");
scanf("%d",&n);
y=ff(n);
printf("%d!=%ld",n,y);
}
程序中给出的函数ff是一个递归函数。主函数调用ff
后即进入函数ff执行,如果n<0,n==0或n=1时都将结束函数的执行,否则就递归调用ff函数自身。由于每次递归调用的实参为n-1,即把n-1的值赋予形参n,最后当n-1的值为1时再作递归调用,形参n的值也为1,将使递归终止。然后可逐层退回。
下面我们再举例说明该过程。设执行本程序时输入为5,即求5!。在主函数中的调用语句即为y=ff(5),进入ff函数后,由于n=5,不等于0或1,故应执行f=ff(n-1)*n,即f=ff(5-1)*5。该语句对ff作递归调用即ff(4)。
进行四次递归调用后,ff函数形参取得的值变为1,故不再继续递归调用而开始逐层返回主调函数。ff(1)的函数返回值为1,ff(2)的返回值为1*2=2,ff(3)的返回值为2*3=6,ff(4)的返回值为6*4=24,最后返回值ff(5)为24*5=120。

④ 编写一个递归函数计算从1加到100的和

int fun(int x)
{
if(x>1)
return x+fun(x-1);
else
return x;
}
void main()
{
int sum;
sum=fun(100);
printf("sum=%d ",sum);
}

(4)计算递归函数编程扩展阅读

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

在数学上,关于递归函数的定义如下:对于某一函数f(x),其定义域是集合A,那么若对于A集合中的某一个值X0,其函数值f(x0)由f(f(x0))决定,那么就称f(x)为递归函数。

一个含直接或间接调用本函数语句的函数被称之为递归函数,在上面的例子中能够看出,它必须满足以下两个条件:

1) 在每一次调用自己时,必须是(在某种意义上)更接近于解;

2) 必须有一个终止处理或计算的准则。

⑤ C语言编程:用函数递归法求Fibonacci数列的前n项·

#include <stdio.h>

long int F(int n)

{

if (n==1||!n) {

return n;

}

else return F(n-1)+F(n-2);

}

int main(void)

{

int i,n;

printf("n=");

scanf("%d",&n);

for (i=0; i<n; i++) {

printf("%-10ld",F(i));

}

return 0;

}

在数理逻辑和计算机科学中

递归函数或μ-递归函数是一类从自然数到自然数的函数,它是在某种直觉意义上是"可计算的" 。事实上,在可计算性理论中证明了递归函数精确的是图灵机的可计算函数。递归函数有关于原始递归函数,并且它们的归纳定义(见下)建造在原始递归函数之上。但是,不是所有递归函数都是原始递归函数 — 最着名的这种函数是阿克曼函数。

以上内容参考:网络-递归函数

阅读全文

与计算递归函数编程相关的资料

热点内容
外国片公交车男女主 浏览:234
瓦房店新玛特有电影院吗 浏览:933
免费观看网页版 浏览:622
叶子楣徐锦江演的电影 浏览:40
一级建造师法规pdf 浏览:496
phpshiro 浏览:161
无忧云服务器放行 浏览:634
免费最新大片观看网址 浏览:250
微信手势图标加密 浏览:746
存储服务器能干什么 浏览:785
c编辑软件怎么编译 浏览:597
hpc编译器论文 浏览:814
javac编译子目录下所有文件 浏览:430
卡友帮帮团是什么app 浏览:242
vnc启动命令 浏览:374
哺乳十电影 浏览:629
贵州java编译器 浏览:645
欧美电影免费看平台 浏览:286
台湾红羊影视作品有哪些 浏览:906
农行app上怎么查询卡号 浏览:891