电子商务网站建设成都网站底部备案图标
2026/2/27 15:36:16 网站建设 项目流程
电子商务网站建设成都,网站底部备案图标,专门做ppt的网站斧头,应用软件的开发过程递归#xff1a;在数学与计算机中是指在函数的定义中只用函数自身的方法#xff0c;在计算机科学中还额外指一种通过重复将问题分解为同类的子问题而解决问题的方法1.递归出口#xff08;边界条件#xff09;#xff1a;找全递归终止条件2.注意#xff1a;写代码只考虑当…递归在数学与计算机中是指在函数的定义中只用函数自身的方法在计算机科学中还额外指一种通过重复将问题分解为同类的子问题而解决问题的方法1.递归出口边界条件找全递归终止条件2.注意写代码只考虑当前问题怎么解决不分析下层问题怎么展开不用去倒明白就能处理当前就行3.理解画图构思找规律4.例题题目描述面试题 08.06. 汉诺塔问题在经典汉诺塔问题中有 3 根柱子及 N 个不同大小的穿孔圆盘盘子可以滑入任意一根柱子。一开始所有盘子自上而下按升序依次套在第一根柱子上即每一个盘子只能放在更大的盘子上面。移动圆盘时受到以下限制(1) 每次只能移动一个盘子(2) 盘子只能从柱子顶端滑出移到下一根柱子(3) 盘子只能叠在比它大的盘子上。请编写程序用栈将所有盘子从第一根柱子移到最后一根柱子。你需要原地修改栈。示例 1输入A [2, 1, 0]B []C []输出C [2, 1, 0]第一步先简化题意就是把1柱的盘子移动到3柱以2柱为媒介归根到底还是先放大盘子但是1柱先动的是小盘子所以通过媒介把小盘子放到下面实现“让大盘子能比小盘子先动”,第二步那么这种题肯定无法用循环解决我们用栈来充当柱子再编写“根据不同请况盘子不同移动”的逻辑我们需要一个函数在调用的时候传入123三柱的栈那麽我们就知道一共需要做3个事情设盘子数量aas起点e终点h媒介1.把x-1个盘子通过媒介传到柱子s-e-h2.处理最后一个s-e3.把前面x-1个盘子移回正轨h-s-e代码package 博客; import java.util.Stack; import java.util.Scanner; public class 递归 { public static void hannuota(int aa, StackInteger s, StackInteger e, StackInteger h) //s起点e终点h媒介 { if(aa1)//这是减到底了写这个if的目的是里面可以放return { int ps.pop(); e.add(p); return ; } hannuota(aa-1,s,h,e);//1把aa-1个都处理这一行就是只处理一次处理完后调用自身就是持续调用aa-1次 int ds.pop();//2 处理最后一个后面每一次都会运行这个决定不同的是输入的值 e.add(d); hannuota(aa-1,h,e,s);//3 必须在最后把前面的aa-1个放回正轨 } public static void main(String[] args) { StackInteger a new Stack(); StackInteger b new Stack(); StackInteger c new Stack(); Scanner scnew Scanner(System.in); int nsc.nextInt(); for(int i0;in;i) { a.add(sc.nextInt()); } int aaa.size(); hannuota(aa,a,c,b); System.out.println(c.toString()); } }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询