#include <stdio.h>
int fibonacci(int a){//fibonacci数列,第一二项为1;后面的每一项为前两项之和
if (a == 1 || a == 2)
{
return 1;
}else{
return fibonacci(a - 1) + fibonacci(a - 2);
}
}
void main(){
printf("%d\n",fibonacci(40));
}
递归将整形数字转换为字符串
#include <stdio.h>
int toString(int i, char str[]){//递归将整形数字转换为字符串
int j = 0;
char c = i % 10 + '0';
if (i /= 10)
{
j = toString(i, str) + 1;
}
str[j] = c;
str[j + 1] = '\0';
return j;
}
void main(){
char str[100];
int i;
printf("enter a integer:\n");
scanf("%d",&i);
toString(i,str);
puts(str);
}
求一个整数阶乘:
int jiecheng(int i){
if(i == 1){
return 1;
}else{
return jiecheng(i - 1) * i;
}
}
汉诺塔
#include <stdio.h>
void hanoi(int i,char x,char y,char z){
if(i == 1){
printf("%c -> %c\n",x,z);
}else{
hanoi(i - 1,x,z,y);
printf("%c -> %c\n",x,z);
hanoi(i - 1,y,x,z);
}
}
void main(){
hanoi(10,'A','B','C');
}
四个数找最大:
int max(int a, int b, int c, int d){
if(a > b && a > c && a > d){
return a;
}else{
max(b,c,d,a);
}
}
猴子吃桃,每天吃一半再多吃一个,第十天想吃时候只剩一个,问总共有多少:
int chitao(int i){//猴子吃桃,每天吃一半再多吃一个,第十天想吃时候只剩一个
if(i == 10){
return 1;
}else{
return (chitao(i + 1) + 1) * 2;
}
}
分享到:
相关推荐
"经典C语言程序设计100例.doc"文档可能包含各种C语言编程示例,包括递归和贪心算法的实例。而"C语言经典算法.txt"文件则可能提供了更多关于这两种算法的详细解释和代码片段。不断练习和研究这些算法,不仅能够提高...
- **示例**:阶乘函数就是一个典型的递归算法应用实例。 #### 1.6 分治算法 - **定义**:分治算法是通过将大问题分解成若干个子问题来求解的策略,子问题相互独立且与原问题类型相同。 - **应用场景**:快速排序、...
在这个压缩包中,你将找到两个关于阿克曼函数的C语言实现:一个使用了递归算法,另一个则通过栈来模拟递归。 首先,让我们深入理解阿克曼函数。它通常定义为A(m, n),其中m和n是正整数。阿克曼函数的计算规则如下:...
**C语言递归算法** 在计算机科学中,递归是一种编程技术,它通过函数或程序调用自身来解决问题。递归通常与分治法、动态规划等算法设计策略结合使用,能够简化代码并处理复杂问题。C语言作为基础且强大的编程语言,...
在这里,我们有两个经典的递归算法实例,它们是汉诺塔问题和二分查找法,这两个题目经常在编程竞赛如蓝桥杯中出现。 首先,我们来看汉诺塔问题。这是一个著名的逻辑难题,源于印度,由三根柱子和一堆大小不一的圆盘...
【C#递归算法详解】 递归算法是编程中一种重要的技术,特别是在C#这样的面向对象语言中。它涉及到函数自身调用自身的过程,通过解决更小规模的问题来解决整个问题。递归算法的核心概念包括两个关键部分:基础情况...
**背包问题递归算法在...总之,背包问题递归算法在C语言中的实现是一个很好的学习实例,它展示了如何利用递归来解决复杂问题。虽然效率不如动态规划,但递归算法对于理解问题的本质和构建解决方案有着重要的教学价值。
本篇文章将深入探讨三种常用的算法:分治、递归、动态规划以及贪心策略,并通过实例来阐述它们的应用和重要性。 首先,让我们来看分治算法。分治法是一种处理大问题的策略,它将大问题分解为若干个规模较小、相互...
在ACM(国际大学生程序设计竞赛)中,递归算法是一种常见的解决问题的方法,它通过函数自身调用自身来实现问题的解决。递归的核心在于找到基本情况(base case),即可以直接求解的问题,以及每次递归调用时问题规模...
但是,递归算法也存在一些缺点,例如可能会出现栈溢出问题。 7. C++编程语言的应用:在本文中,C++编程语言被应用于实现递归算法和位运算。C++语言的优点是可以高效地实现递归算法和位运算,提高了计算效率和简洁性...
本文将详细介绍一个用Java编写的递归算法实例,该实例用于实现字符数组的所有可能全排列。通过这个例子,我们可以深入理解递归的基本概念、工作原理以及如何在实际编程中应用递归来解决问题。 #### 代码解析 #####...
递归算法是编程中一种非常重要的思想,尤其在Java这样的面向对象编程语言中,它的应用广泛且深入。递归的基本原理是将一个大问题分解为若干个相同或相似的小问题来解决,这些小问题同样可以用同样的方法去解决,直到...
1. 递归算法实例:阶乘计算 阶乘是一个典型的递归问题。例如,计算4的阶乘(4!)可以表示为4 × 3 × 2 × 1。递归地定义阶乘,我们可以将大问题分解为小问题,直到达到基本情况。对于n的阶乘,我们有: F(n) = n ...
标题“经典算法之递归”暗示我们将探讨使用递归解决一些经典的计算机科学算法。递归通常涉及两个主要部分:基本情况(Base Case)和递归情况(Recursive Case)。基本情况是问题最简单或最小的形式,可以直接求解,...
这些实例充分展示了递归算法的优雅和实用性。在八皇后问题中,递归帮助我们以简洁的方式处理复杂的约束;在折半查找中,递归加速了查找过程,减少了比较次数;在快速排序中,递归使得大规模数据的排序变得可能。理解...
三、递归实例 以计算阶乘(n!)为例,当n大于1时,n!可以表示为n乘以(n-1)!。递归函数`fac`如下所示: ```c int fac(int n) { int t; if(n == 1 || n == 0) return 1; // 终止条件 else { t = n * fac(n - 1); ...
本章节通过具体的实例进一步阐述递归算法的应用。 **经典案例:斐波那契数列** 斐波那契数列是一个典型的递归问题,定义如下: - F(0) = 0 - F(1) = 1 - F(n) = F(n-1) + F(n-2),对于 n > 1 **问题背景:** - ...
在编程领域,递归是一种强大的算法,它通过函数或过程自身调用来解决问题。在这个主题中,我们将深入探讨如何使用递归算法在VB6.0(Visual Basic 6.0)中计算阶乘。VB6.0是Microsoft开发的一款经典可视化编程环境,...
* 递归算法可以解决一些复杂的问题。 7. 递归算法的缺点: * 递归算法可能会导致栈溢出错误。 * 递归算法可能会导致性能问题。 8. 递归算法的应用实例: * 求解阶乘函数的递归算法 * 搜索链表最后一个...