函数递归的简单实例
来源:互联网 发布:to是网络的意思是什么 编辑:程序博客网 时间:2024/09/21 06:35
// 递归调用add函数实现1+2+3。。。。+100的值
// 函数实现过程,i=1,累加i,并且判断i的值是否等于100,如果等于,则直接返回累加结果s
//如果不满足i等于100,则执行 return add(++i); i自增,调用add(2),再将s加上2,这样s一直加到100 ,再返回s的最终结果。
【例1】
#include <stdio.h>int add(int i);int main(){int s,i=1; s=add(i);printf("%d\n",s);_getch(); //暂停屏幕 }int add(int i){static int s=0; //为了保证每次调用 add()函数时,将s赋值为0,所以应加上static s=s+i; if(i==100) return s; return add(++i); }
// 求fibnbcci数列
【例2】
// 求fibnbcci数列
【例2】
#include <stdio.h> int fun(int n); int main() { int n; scanf("%d",&n); printf("%d\n",fun(n)); _getch(); } int fun(int n) { long f; if(n==0||n==1) f=1; else f=fun(n-1)+fun(n-2); return f;
}
【例3】求两数的最大公约数
//算法:1.求p=m%n
2.若p=0,则n为所求值
3.若p!=0,则将n赋值给m,将m%n赋值给n
4.直到m%n=0为止
#include <stdio.h> #include <stdlib.h> int gys(int m,int n); //公约数 函数声明 int gbs(int m,int n); //公倍数 函数声明 int main() { int m,n,p,q; scanf("%d%d",&m,&n); #xa0; p=gys(m,n); //调用函数 printf("最大公约数:%d \n",p); q=gbs(m,n); printf("最小公倍数:%d\n",q); return 0; } int gys(int m,int n) { int p; //p保存最大公约数 if(m%n==0) //如果能除尽,则n为m,n的最大公约数 p=n; else p=gys(n,m%n); //不能除尽,则再次调用gys函数,此时,n的值传递给m,m%n的值传递给n,直到m%n等于0 return p; //返回p return 0; } int gbs(int m,int n) //最小公倍数 { int k; k=gys(m,n); //调用最大公约数的结果 m=m/k; //将m除以最大公约数 n=n/k; //n除以最小公倍数return k*m*n; //返回k*m*n,就是最小公倍数 }
【例子4】 汉诺塔问题
//具体过程不懂得,可以百度吧,小编这就不写了,打字好累!
1. #include<stdio.h>
2. static int count=0;
3. void hanoi(char a,char b,char c,int n)
4. {
5. if(n==1)
6. {
7. printf("%c->%c\n",a,c);
8. count++;
9. }
10.else
11.{
12.hanoi(a,c,b,n-1);
13.printf("%c->%c\n",a,c);
14.count++;
15.hanoi(b,a,c,n-1);
16.}
17.}
18.void main()
19.{
20.int n;
21.scanf("%d",&n);
22.hanoi('A','B','C',n);
23.printf("共%d次\n",count);
24.}
0 0
- 函数递归的简单实例
- 递归的简单实例
- 实现递归的简单实例
- 一个简单的递归实例
- 递归方法的简单实例
- 函数的递归调用实例
- 最简单的递归函数
- 函数实例-简单的函数
- PHP递归算法的简单实例
- 递归函数的概念用法与实例
- 递归简单实例
- java递归简单实例
- java递归简单实例
- 递归调用实例分析2.在函数中间的递归与在函数尾部的递归
- 写一个简单的递归函数
- 反转字符串的简单递归函数
- 递归函数的简单说明和使用
- 简单递归函数
- spring Caused by: java.lang.SecurityException: Prohibited package name: java.time
- Facebook称坐拥5亿球迷 将直播巴西世界杯
- 用IntelliJ代替Eclipse,调试Android Source codes
- 不同版本iis 处理asp.net
- traits:Traits技术初探
- 函数递归的简单实例
- projecteuler---->problem=25----1000-digit Fibonacci number
- 第1次实验——NPC问题(回溯算法、聚类分析)
- HDU1106--排序
- [FAQ]jackson解决:null到"", 空值处理为空串
- python 语句补充
- shader 2: vertex, fragment, surf的区别
- jQuery插件之Resizable
- host-谷歌