c语言递归函数经典例题 c语言递归函数的概念及用法

c语言 函数递归调用的简单例子

举一个用递归调用函数求输入非负整数的阶乘的例子,如下:

做网站、成都网站制作的关注点不是能为您做些什么网站,而是怎么做网站,有没有做好网站,给创新互联公司一个展示的机会来证明自己,这并不会花费您太多时间,或许会给您带来新的灵感和惊喜。面向用户友好,注重用户体验,一切以用户为中心。

//#include "stdafx.h"//If the vc++6.0, with this line.

#include "stdio.h"

int fact(int n){

if(n==1 || n==0) return 1;

else return n*fact(n-1);

}

int main(void){

int x;

while(1){

printf("Input x(int 12=x=0)...\nx=");

if(scanf("%d",x),x=0  x=12)//x12时会使结果溢出

break;

printf("Error,redo: ");

}

printf("%d! = %d\n",x,fact(x));

return 0;

}

一道C语言的题目,递归法

#include

#include

/*求n的

阶乘

,递归,

分母

部分

*

结束条件为:1的阶乘=1

*

递归时,一定要有结束条件

*/

int

factorial

(n)

{

if(n==1)

//递归结束条件,1的阶乘为1

return

1;

else

return

n*factorial(n-1);

//n的阶乘为n乘以(n-1)!

}

int

main()

{

int

n,x;

size_t

i;

//i为

无符号整数

double

re=0;

printf("input

n

and

x:");

scanf("%d%d",n,x);

//输入n和x的值

for(i=1;i=2*n-1;i+=2)

{

/*pow函数求的是x的i次方,分母为

i的

阶乘。本部分可以优化,因为i的阶乘算出来了,所以i+2的阶乘就是i的阶乘*(i+1)*(i+2),不用重复来计算阶乘。自己可以试试*/

re

+=

pow(x,i)/factorial(i);

}

printf("\nn=%d\tx=%d\tresult=%f\n",n,x,re);//打印出

最后的结果

return

0;

}

C语言!跪求使用递归法的例题(带答案的)

汉诺塔算法, 一个柱子1上n个盘子套着,大的在下,借用柱子2,全部转移到柱子3上

#include stdio.h

int main()

{

void hanoi(int n,char one,char two,char three); // 对hanoi函数的声明

int m;

printf("input the number of diskes:");

scanf("%d",m);

printf("The step to move %d diskes:\n",m);

hanoi(m,'A','B','C');

}

void hanoi(int n,char one,char two,char three) // 定义hanoi函数

// 将n个盘从one座借助two座,移到three座

{

void move(char x,char y); // 对move函数的声明

if(n==1)

move(one,three);

else

{

hanoi(n-1,one,three,two);

move(one,three);

hanoi(n-1,two,one,three);

}

}

void move(char x,char y) // 定义move函数

{

printf("%c--%c\n",x,y);

}

在hanoi调用hanoi就是递归了

C语言中自我递归的几个例子

递归主要元素:入口,递归和结束。在定义递归函数时将这三个元素考虑进去就行;如: double callnext(int n)

{

if(n1) return callnext(n-1)+3;

else return 1;

}

int main()

{

int m;

scanf("%d",m);

printf("result=%f",callnext(m));

return 0;

}

入口:callnext(m);递归:if(n1) return callnext(n-1)+3中的callnext(n-1);结束:else return 1;整个执行流程:callnext(m) 调用 callnext(m-1);callnext(m-1)调用callnext(m-1-1)。。。

callnext(2)调用callnext(1);callnext(1)=1;结束;


当前标题:c语言递归函数经典例题 c语言递归函数的概念及用法
浏览地址:http://azwzsj.com/article/dohscip.html