蓝桥杯——递归三:递归的一些实际应用(2017.2.22)
来源:互联网 发布:狗狗用品专卖店淘宝 编辑:程序博客网 时间:2024/04/27 17:44
1. 猴子吃桃问题
源代码:
#include <stdio.h>int fun(int n){if(n==1)return 1;elsereturn (fun(n-1)+1)*2;}int main(){int n;while(scanf("%d",&n)!=EOF)printf("%d\n",fun(n));return 0;}程序截图:
2. h阶楼梯下楼问题(对比更容易理解的“n阶楼梯上楼问题”)
从楼上走到楼下共有h个台阶,其中每一步有3种走法:走1个台阶;走2个台阶;走3个台阶。问共有多少种下楼方案?
源代码:
法一:
#include <stdio.h>int count;int take[105]; //记录某一步所走步数 void Try(int i,int s) //求方案数 {int j,k;for(j=3;j>0;j--){if(i>=j){take[s]=j; //记录第s步走j个台阶if(i==j) //如果已经到了楼下 {count++;printf("方案%d:",count);for(k=1;k<=s;k++) //输出本方案的每一步printf("%d ",take[k]);printf("\n");}elseTry(i-j,s+1); //尚未走到楼下,再试剩下的台阶(递归调用) }}}int main(){int h;while(scanf("%d",&h)!=EOF){count=0;Try(h,1);printf("count=%d\n",count); }return 0;}法二:
#include <stdio.h>int Try(int h){if(h==1)return 1;else if(h==2)return 2;else if(h==3)return 4;elsereturn Try(h-1)+Try(h-2)+Try(h-3);}int main(){int h;while(scanf("%d",&h)!=EOF)printf("count=%d\n",Try(h));return 0;}程序截图:
3. 分书问题
有编号为0~4的5本书,准备分给5个人A,B,C,D,E。每个人的阅读兴趣用一个二维数组描述,公式如下:
like[i][j]=1:i喜欢j书 ; 0:i不喜欢j书
写一程序,输出所有分书方案,让人人皆大欢喜。假定5个人对5本书的阅读兴趣如下:
0 1 2 3 4
A 0 0 1 1 0
B 1 1 0 0 1
C 0 1 1 0 1
D 0 0 0 1 0
E 0 1 0 0 1
源代码:
#include <stdio.h>int take[5],n=0;int like[5][5]={{0,0,1,1,0},{1,1,0,0,1},{0,1,1,0,1},{0,0,0,1,0},{0,1,0,0,1}};int book[5]={0};void Try(int i){int j,k;for(j=0;j<5;j++) //j-书号 {if((like[i][j]) && (book[j]==0)) //满足分书条件时 {take[i]=j; //把j号书给i book[j]=1; //记录j号书已分 if(i==4) //i=4说明所有书均已被分完,输出方案 {n++;printf("第%d个方案:\n",n);for(k=0;k<5;k++)printf("%d号书分给%c ",take[k],k+'A');printf("\n");}else //否则书还没有分完,继续给下一人分书 Try(i+1);book[j]=0; //记录j书待分 }}}int main(){n=0;Try(n); //分书方案号预置0,开始分书过程 return 0;}程序截图:
0 0
- 蓝桥杯——递归三:递归的一些实际应用(2017.2.22)
- 【Basic Code】递归查询的实际应用
- 递归的一些典型应用
- 递归的一些经典应用
- 数据结构—递归的应用
- 用递归思想解决二叉树的实际应用
- 程序结构&&程序设计(三) ——递归及递归举例
- 二叉树遍历的应用(递归!递归!递归!)
- 关于递归的一些简单应用
- 递归算法在实际项目中的应用
- 递归和递归的应用
- 汉诺塔——递归的应用
- 递归 递归 递归 —深入浅出
- 递归的应用(一)
- 递归的应用(二)
- 递归的应用(二)
- 递归的一些基础知识
- 递归的一些例子
- 【Codeforces 711 D D. Directed Roads】 + DFS
- WinSCP命令行操作
- M上第一次开机默认打开数据开关
- Java 容器 & 泛型:二、ArrayList 、LinkedList和Vector比较
- linux系统安装gem5模拟器
- 蓝桥杯——递归三:递归的一些实际应用(2017.2.22)
- ural1017 Staircases (动态规划)
- 谁是卧底
- HM编码器代码阅读(44)——样点自适应补偿SAO(三)选取最优的SAO模式并确定补偿值
- Android两种播放视频的方法(SurfaceView+MediaPlayer+SeekBar)跟(VideoView+MediaController)
- 信道效率以及信道的吞吐率
- 42:String to Integer (atoi)
- Only the original thread that created a view hierarchy can touch its views.
- leetcode 412 python