首页 > 编程语言 >C编程练习-递归

C编程练习-递归

时间:2023-07-28 16:11:41浏览次数:35  
标签:练习 递归 int 编程 char func printf hanio

1.使用递归解决计算第N项斐波那切数列

斐波那契数列:F(0)=1,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)

1,1,2,3,5,8,13,21,34,55,89...

代码:

#include<stdio.h>

int func_f(int n)
{
    if(1 == n || 2 == n)  return 1;
    return func_f(n-1) + func_f(n-2);
}

int main(int argc,const char* argv[])
{
    printf("%d \n",func_f(5));
}

2.使用递归模拟N层汉诺塔的移动过程

#include<stdio.h>

//s起点 m中间点 e终点
void hanio(int n,char s,char m, char e)
{
    if(1 == n)
    {
        printf("%d from %c to %c\n",n,s,e);
        return;
    }
    hanio(n-1,s,e,m);
    printf("%d from %c to %c\n",n,s,e);
    hanio(n-1,m,s,e);
}

int main(int argc,const char* argv[])
{
    hanio(4,'A','B','C');
}

 

标签:练习,递归,int,编程,char,func,printf,hanio
From: https://www.cnblogs.com/ljf-0804/p/17587913.html

相关文章

  • C编程练习-五子棋升级版(键盘的上下左右键控制落子)
    #include<stdio.h>#include<stdbool.h>#include<stdlib.h>#include<getch.h>charboard[15][15];//棋盘charrole='@';//角色charkey_x,key_y;//下子坐标//初始化棋盘voidinit_board(void){for(inti=0;i<15;i++){for......
  • 小白编程入门要怎么学?
    1、如果你已经掌握了Windows的使用,你就可以踏上编程之旅了,开始游戏式的程序开发!2、首先从学习C语言开始。有些人可能认为C语言很难,建议从VB(VisualBasic)开始学习。虽然通过使用控件堆砌小软件可以获得一些成就感,但基础才是最重要的!C语言涵盖了更全面、清晰的数据类型描述,正是编程......
  • Day5.2 Shell编程教程 - 特殊变量表达式参数
    1.特殊变量表达式参数`$0``$n``$#``$*``$@``$?``$$``$!`2.示例脚本示例脚本-`special_variables.sh`3.执行示例脚本4.结论大树哥个人信息在Shell脚本中,特殊变量提供了对脚本执行过程和执行环境的访问。它们帮助我们在脚本中获取脚本自身的名称、获取命令行参数以及处理其......
  • 并发编程-CompletableFuture解析
    1、CompletableFuture介绍CompletableFuture对象是JDK1.8版本新引入的类,这个类实现了两个接口,一个是Future接口,一个是CompletionStage接口。CompletionStage接口是JDK1.8版本提供的接口,用于异步执行中的阶段处理,CompletionStage定义了一组接口用于在一个阶段执行结束之后,要么继......
  • 2023“钉耙编程”中国大学生算法设计超级联赛(4)Number Table
    题意对于一个\(2\timesn\)的矩阵,若每行每列数均不同且均\(\in[0,2^k)\),同时\(2n\)个数异或和为\(0\)则称该矩阵合法。给定\(n,k\),求总方案数。做法考虑若只有一行,即求\(n\)个不相同的数异或和为\(0\)的方案数:假定前\(n-1\)个数不同且已确定,此时仅需考虑第\(n\)个数是否在前......
  • Java8 函数式编程stream流
    开篇介绍Java8中新增的特性旨在帮助程序员写出更好的代码,其中对核心类库的改进是很关键的一部分,也是本章的主要内容。对核心类库的改进主要包括集合类的API和新引入的流(Stream),流使程序员得以站在更高的抽象层次上对集合进行操作。下面将介绍stream流的用法。1.初始环境准备......
  • Delphi 的 DBGrid 中的下拉列表和查找字段编程方法
    数据网格是非常流行的数据输入和显示形式,像大家熟悉的Excel、VFP 中的功能强大的BROWS 等,为广大程序员乐于采用。在用 Delphi 开发数据库应用系统时,利用数据网格DBGrid 输入数据时,有些字段只允许某几个固定的字符串,像档案案卷的保管期限,只有“永久”、“长期”和“短期”三种......
  • linux shell编程入门
    摘要介绍shell是什么shell快速开始一、基本概念1.shell是什么Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序用户可以用Shell来启动、挂起、停止甚至是编写一些程序。2.shell脚本|执行方式脚本格式要求脚本以#!/b......
  • 23年暑假大一第一周编程练习
    23年暑假大一第一周编程练习1.消失的数字:deffind_missing_number(nums):#计算完整数组的和complete_sum=sum(range(1,len(nums)+2))#range包:[1,7)#print(complete_sum)#1+2+3+4+5+6=21#计算数组中所有数的和array_sum=sum(nums)......
  • @Accessors注解——Lombok的链式编程
    用注解@Accessors 给实体类加上 chain=true 选项,即@Accessors(chain=true) 支持了Java链式写法; 什么是链式写法,比如:report.getOne().getTwo().getId(); 相关连接:https://susu-math.blog.csdn.net/article/details/122770688?spm=1001.2101.3001.6650.1&utm_me......