几个经典的递归小程序
取球问题
1 /* 2 * 取球问题: 3 * 从n个球中取出m个有多少种取法? 4 */ 5 6 public class Main { 7 8 public static void main(String[] args) { 9 System.out.println(quQiu(10, 3)); 10 } 11 12 static int quQiu(int n, int m) { 13 if (n < m) { 14 return 0; 15 } 16 if (n == m) { 17 return 1; 18 } 19 if (m == 0) { 20 return 1; 21 } 22 return quQiu(n - 1, m) + quQiu(n - 1, m - 1); // 弄一个特殊球,再分该球取不取两种情况 23 } 24 25 }
全排列问题
1 /* 2 * 全排列问题: 3 * 求n个元素的全排列? 4 */ 5 6 public class Main { 7 8 public static void main(String[] args) { 9 char[] a = "ABCDEFG".toCharArray(); 10 paiLie(a, 0); 11 } 12 13 static void paiLie(char[] a, int index) { 14 if (index == a.length) { 15 System.out.println(a); 16 } 17 for (int i = index; i < a.length; i++) { 18 char temp = a[index]; 19 a[index] = a[i]; 20 a[i] = temp; 21 22 paiLie(a, i + 1); 23 24 temp = a[index]; // 回溯 25 a[index] = a[i]; 26 a[i] = temp; 27 } 28 } 29 30 }
AB排列问题
1 /* 2 * 计算m个A,n个B可以组成多少排列? 3 * 如:AABB,ABB...... 4 */ 5 6 public class Main { 7 8 public static void main(String[] args) { 9 System.out.println(paiLie(2, 1)); 10 } 11 12 static int paiLie(int m,int n){ 13 if(m==0||n==0){ 14 return 1; 15 } 16 return paiLie(m-1, n)+paiLie(m, n-1); 17 } 18 19 }
最大子序列问题
/** 最大子序列长度:* 求两个串的最大公共子序列长度?*/public class Main {public static void main(String[] args) {System.out.println(ziXuLieChangDu("abc", "xbacd"));}static int ziXuLieChangDu(String s1, String s2) {if (s1.length() <= 0 || s2.length() <= 0) {return 0;}if (s1.charAt(0) == s2.charAt(0)) { // 假设首位相等return 1 + ziXuLieChangDu(s1.substring(1), s2.substring(1));} else {return Math.max(ziXuLieChangDu(s1.substring(1), s2), ziXuLieChangDu(s1, s2.substring(1)));}}}
整数分化问题
1 /* 2 * 整数分化问题: 3 * 对于给定的正整数n,打印所有分化部分 4 */ 5 6 public class Main { 7 8 public static void main(String[] args) { 9 int[] a = new int[6]; 10 fenHua(6, a, 0); 11 } 12 13 static void fenHua(int n, int[] a, int index) { 14 if (n <= 0) { 15 for (int i = 0; i < index; i++) { 16 System.out.print(a[i] + " "); 17 } 18 System.out.println(); 19 } 20 for (int i = n; i > 0; i--) { 21 if (index > 0 && i > a[index - 1]) { //先大后小 22 continue; 23 } 24 a[index] = i; 25 fenHua(n - i, a, index + 1); 26 } 27 } 28 29 }
转载于:https://www.cnblogs.com/flypie/p/5116603.html
几个经典的递归小程序相关推荐
- 多分类经典语录微信小程序源码下载支持一键复制带壁纸,王者改名等功能
这是一款主要以各类语录分享的一款小程序源码 比如有:舔狗日记,土味情话,别味情话,励志鸡汤 内容支持一键复制分享,可以随时切换下一个内容 另外还有壁纸功能(属于自动采集) 还有王者荣耀空白名修改,重复 ...
- (已更新)多分类经典语录微信小程序源码下载支持一键复制带壁纸,王者改名等功能
这是一款主要以各类语录分享的一款小程序源码 比如有:舔狗日记,土味情话,别味情话,励志鸡汤 内容支持一键复制分享,可以随时切换下一个内容 另外还有壁纸功能(属于自动采集) 还有王者荣耀空白名修改,重复 ...
- 广州某高校经典诵读微信小程序分析
前言 诵读中华经典 弘扬传统文化 本博客只对该小程序进行分析,仅限学习使用,严禁进行其他非法计算机侵入行为!造成的后果本人不承担相关责任. 背景(故事纯属虚构) 该校的K同学对于该小程序原理十分感兴趣 ...
- 比较经典的java程序_一些经典的java小程序代码,最好能复制后直接使用的 爱问知识人...
一般排序的方法是比较经典的,你可以去网上找,很多的.各种排序方法,一般很多程序,尤其是考试什么的,都是需要的.像经典的冒泡排序.public static void sort(int[] values ...
- c语言入门小程序素数,C语言编程入门经典18个小程序
C语言是面向过程的,而C++是面向对象的 C跟C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考量的是怎样借助一个过程,对输入(或环境条件)进行运算处理得到输出(或推动 ...
- 常用c语言小程序,c语言经典小程序汇总大全
网上有很多的人说编程有多么多么无聊,其实:不要管别人怎么说,别人说什么,做你自己喜欢做的事就好.坚持下来,你会发现编程的乐趣的.当然,如果你觉得学习编程语言很痛苦,坚持了一段时间后无果,南无果断放弃未 ...
- 从小程序到小程序云开发
点击观看大咖分享 小程序云开发为微信小程序开发者提供云到端的一站式解决方案,帮助开发者统一构建和管理资源,能有效降低技术门槛.减少研发成本.提升开发效率,协助开发者快速搭建稳定高质量的微信小程序应用. ...
- 多文档程序 两个menu框架_汇总9款优秀的开源小程序UI框架
卧槽这玩意儿写的这么烂,我可以写一个更烂的来恶心作者--开源社区,经典语录 随着小程序日渐火爆,各种不同类型的小程序也渐渐更新,其中不乏一些优秀好用的框架/组件库. 布莱恩特:Github优秀的小程序 ...
- c语言小程序作业,c语言小程序(c语言简单小程序代码)
所以特此求经典C语言小程序.谢谢大家的关注!!! #include #include void function(int n){ int i,j,k,x=0; for(i=1;i<=n;i++) ...
- 微信小程序实现window经典的扫雷游戏
文章目录 前言 一.扫雷游戏规则是什么? 二.开发前准备 1.创建小程序项目 2.开始开发 2.1.实现网格地图 2.2.生成雷 2.3.生成雷数 2.4.长按添加雷的标识 2.5.点击网格事件 2. ...
最新文章
- master.dbo.spt_values
- 视图解析jstlView支持便捷的国际化功能
- php屏蔽行,PHP屏蔽过滤指定关键字的方法
- CNN基础知识(2)
- wpf资源嵌套,一个资源引用另外一个资源,被引用的资源应该声明在前面
- 七桥问题c语言程序数据结构,数据结构与算法学习——图论
- hadoop之MapReduce的案例(多表关联)
- 「代码随想录」337.打家劫舍III 【动态规划】力扣详解!
- c语言 和 运算顺序,二 如何学习C语言的运算符和运算顺序
- 中挪动正请求第三方支出牌照竖立支出公司
- 排序构造 GYM 101149 F - The Weakest Sith
- 重构Webpack系列之四 ---- Loaders
- three.js 文本_使用Three-bmfont-text在Three.js中创建文本
- 网易云音乐android变臃肿,网易云音乐版权少,为什么用户还能突破8亿??
- 基于OpenCv的人脸识别系统设计
- vue报错:Not Found - GET https://registry.npmjs.org/- Not found
- 大数据是人类福音还是洪水猛兽?
- 移动App该怎样保存用户password
- 获取jar包中的文件,及遍历jar包中的文件
- 指责TD的人几个是有资格的?--艾瑞网专家项立刚的博客专栏 - 艾瑞网
热门文章
- [洛谷P2463][SDOI2008]Sandy的卡片
- Gather more plan statistics by gather_plan_statistics hint
- 关于android资源文件名称的规范
- NOIp 2014 #3 寻找道路 Label:图论
- spring的定时调度
- mingw,cygwin,gnuwin32,msys,msys2 的区别
- 【目标检测】目标检测中的多尺度检测(Multi-Scale),FPN,RPN
- python文件IO中的二进制格式与文本格式
- java调用python脚本并向python脚本传递参数
- 深度神经网络为何很难训练