c语言递归函数头文件,C语言函数,递归,功能模块头文件(习题)

递归:直接或者间接调用自身函数

1. 返回值 函数名(形参)

{

...

函数名(实参);

...

}

注:  1,when从什么时候     2,when到什么时候结束     3,what 每次递归时你需要干嘛

习题:

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。求斐波那契数列:

以兔子繁衍来说 , 首先有一对成熟的兔子生下一只兔子, 过两个月才会生下一只幼兔 , 一只幼兔需要过一个月长大 , 两个月成熟 , 成熟后生下一只兔子 , 幼兔也是如此 .

成熟 : 1   1   1   2   3   5   8   13

幼子 : 0   0   1   1   2   3   5    8

兔总 : 1   1   2   3   5   8  13  21

月份 : 1   2   3   4   5   6   7    8

f(1) = 1;

f(2) = 1;

f(3) = 2;  ==> f(1) + f(2)

f(4) = 3;  ==> f(2) + f(3)

f(5) = 5;  ==> f(3) + f(4)

f(6) = 8;  ==> f(4) + f(5)

f(7) = 13; ==> f(5) + f(6)

f(8) = 21; ==> f(6) + f(7)

公式 : f( i ) = f( i-1 ) + f( i-2 );

使用递归所得 :

#includeint fun(int n)

{

if(n==1||n==2)

return 1;

else

return fun(n-1)+fun(n-2);

}

int main ()

{

//1、递归方法实现(不打印每一项)

int n;

scanf("%d",&n);

printf("the result is %d\n",fun(n));

}

习题:

猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又多吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。到第10天在想吃的时候就剩一个桃子了,问第一天共摘下来多少个桃子?

day = 10;  f(1桃子)  =  1 ;

day =  9;   f(2桃子)  =  (1 + 1) * 2 ;

day =  8;   f(3桃子)  =  { [(1 + 1) * 2] + 1 } * 2   ==>   [ f(2桃子) + 1 ] * 2 ;

公式 : f ( i ) = ( f ( i桃子 ) + 1 ) * 2 ;

#includeint fun(int i)

{

if(i == 10)

return 1;

else

return (fun(i+1)+1)*2 ;

}

void main()

{

printf("第一天的桃子:%d\n",fun(1));

}

习题 :

为用户提供功能模块: 对整型数组排序(冒泡)

bubble.c:

void bubble(int buf[100],int ilen);

//static void swap( int *, int * );

提供声明头文件:bubble.h

首先在Linux的vi编辑器下,创建一个main.c 的文件.

//来自系统文件

#include//包含头文件:就是引入头文件 ”“本地址或系统

#include "select.h"

extern int num;

//包含头文件:就是引入头文件

void main()

{

//字符串:

char buf[100]="zawsgtbrvedcummnhyolp";

//调用函数:selectSort

select(buf);

printf("%s\n",buf);

//引用外部变量:(变量:定义,作用域:)

printf("%d\n",num);

}

当前目录下创建一个bubble.c的文件.

void bubble(char buf[100],int ilen)

{

int i=0,j=0;

char temp;

for(i=0;i

创建一个bubble.h的文件.

extern void bubble(char buf[100],int ilen);

你可能感兴趣的:(c语言递归函数头文件)