【郝斌数据结构自学笔记】49-52_递归的定义和不同函数之间相互调程序举例_一个函数自己调自己程序举例

49 _ 可以不看

50 _ 递归1 _ 递归的定义不同函数之间相互调程序举例

定义:

一个函数自己直接或间接调用自己

举例:

1,1+2+3+4+..+100的和

2,求阶乘

3,汉诺塔

4,走迷宫

#include<stdio.h>

void f();

void g();

void k();

 

int main(void)

{

         f();

         return0;

}

 

void f()

{

         printf("FFFF\n");

         g();

         printf("1111\n");

}

void g()

{

         printf("GGGG\n");

         k();

         printf("2222\n");

}

void k()

{

         printf("KKKK\n");

         printf("3333\n");

        

}


51 _ 递归2 _ 一个函数自己调自己程序举例

#include<stdio.h>

void f(int n)

{

         if(n==1)

                   printf("自己调自己\n");

         else

                   f(n-1);

}

int main(void)

{

         f(7);

         return0;

}


52 _ 递归3 _ 1+2+3+....+100之和用递归来实现

CASE 1

#include<stdio.h>

 

int main(void)

{

         intval;

         inti,mult=1,s;

 

         printf("请输入一个数字:");

         printf("val=");

         scanf("%d",&val);

 

         for(i=1;i<=val;++i)

                   mult=mult*i;

        

         printf("%d的阶乘是:%d\n",val,mult);

 

 

         return0;

}

CASE 2

#include<stdio.h>

//假定n的值是大于或等于1的值

long f(long n)

{

         if(1==n)

                   return1;

         else

                   returnf(n-1)*n;

}

 

int main(void)

{

         printf("5的阶乘是:\n%d\n",f(5));

         return0;

}


CASE 3

#include<stdio.h>

//假定n的值是大于或等于1的值

long sum(long n)

{

         if(1==n)

                   return1;

         else

                   returnsum(n-1)+n;

}

 

int main(void)

{

         printf("1+2+3+...+100的和是:\n%d\n",sum(100));

         return0;

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值