Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >递归的机制

递归的机制

作者头像
姜姜178
发布于 2022-11-18 05:46:27
发布于 2022-11-18 05:46:27
19600
代码可运行
举报
运行总次数:0
代码可运行

public class 递归 {      public static void main(String[] args) {          testa=new test();         a.DG(4);     } } class test{     public void DG(int n){         if (n>2) {             DG(n-1);         }         System.out.println(n);     }

2.运用递归得到乘阶

 3.方法递归调用

3.用递归的方法做出斐波拉契数

1.      

  System.out.println("请输入想知道第几位的斐波拉契数=");          int n=input.nextInt();          System.out.println(a.fblq(n)); 2.

     public int fblq(int n){         if (n>=1) {             if (n==1||n==2) {                 return 1;             }else{                 int a=fblq(n-1)+fblq(n-2);                 return a;             }         }         System.out.println("请输入大于等于1的数字");         return -1;     } }

 4./猴子吃桃: 每天吃的桃是之前的一半加一个;到第十天的时候 只剩下一个桃了 问:最初有几个桃子

      System.out.println("输入第几天的猴子吃的桃子数量");          int day =input.nextInt();         int PeachNum= a.peach(day);         if (PeachNum!=-1) {              System.out.println("第"+day+"天"+"吃的桃子数"+PeachNum);

5.二维数组迷宫

1.定义的规则 1 为障碍 2为行走的路程 3是走过的路 但是没有走通(回溯)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package 位运算;

import java.security.cert.TrustAnchor;

public class 小老鼠出迷宫 {
	public static void main(String[] args) {
		int[][] map=new int[8][7];
		for (int i = 0; i < 7; i++) {
			map[0][i]=1;
			map[7][i]=1;
		}
		
		for (int i = 0; i < 8; i++) {
			map[i][0]=1;
			map[i][6]=1;
		}
		map[3][1]=1;
		map[3][2]=1;
		map[2][2]=1;
//		map[2][1]=1;
//		map[1][2]=1;
		System.out.println("==========地图==========");
		for (int i = 0; i < map.length; i++) {
			
			for (int j = 0; j < map[i].length; j++) {
				
				System.out.print(map[i][j] +" ");
			}
			System.out.println();
		}
		mapRun mrun =new mapRun();
		mrun.run(map, 1, 1);
		System.out.println("===========行走后的地图");
for (int i = 0; i < map.length; i++) {
			
			for (int j = 0; j < map[i].length; j++) {
				
				System.out.print(map[i][j] +" ");
			}
			System.out.println();
		}
	}
}


class mapRun{
	public boolean run(int[][] map,int i,int j){
		if (map[6][5]==2) {
			return true;
		}else{
			if (map[i][j]==0) {
				map[i][j]=2;
			if (run(map,i+1,j)) {
				return true;
			}else if (run(map,i,j+1)) {
				return true;
			}else if (run(map,i-1,j)) {
				return true;
			}else if (run(map,i,j-1)) {
				return true;
			}else{
				map[i][j]=3;
				return false;
			}
				}else{
					return false;
			}
		}
	}
}

跑过的二维数组路线

汉罗塔

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	public static void main(String[] args) {
		hanLuoTa hanluota =new hanLuoTa();
		hanluota.Run(5, 'A', 'B', 'C');
	}
}
class hanLuoTa{
	public void Run(int num,char a,char b,char c){
		if (num==1) {
			System.out.println(a+"->"+c);
		}else {
			Run(num-1,a,c,b);
			System.out.println(a+"->"+c);
			Run(num-1, b, a, c);
		}
	}
}

实现效果步骤

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
25道经典Java算法题(含代码)
来源:blog.csdn.net/YaoChung/article/details/80793691
Java团长
2018/12/28
6.4K1
JAVA经典算法40例
【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
暖月寒星
2020/03/11
8550
十道简单算法题
前言 最近在回顾以前使用C写过的数据结构和算法的东西,发现自己的算法和数据结构是真的薄弱,现在用Java改写一下,重温一下。 只能说慢慢积累吧~下面的题目难度都是简单的,算法的大佬可直接忽略这篇文章了~入门或者算法薄弱的同学可参考一下~ 很多与排序相关的小算法(合并数组、获取数字每位值的和),我都没有写下来了,因为只要会了归并排序(合并数组),会了桶排序(获取数字每位的值),这些都不成问题了。如果还不太熟悉八大基础排序的同学可看:【八大基础排序总结】 由于篇幅问题,每篇写十道吧~ 如果有错的地方,或者有更好
Java3y
2018/04/02
2.6K0
十道简单算法题
Java学习历程之————进阶篇(十)
千禧难题之一: 1、P = NP? 即P(polynomia)问题对NP(nondeterministic polynomial)问题,被看作逻辑和计算机科学中最突出的问题之一。它是斯蒂
用户5410712
2022/06/01
3140
Java学习历程之————进阶篇(十)
算法之递归
简单的说: 递归就是方法自己调用自己,每次调用时传入不同的变量**.**递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。
用户11332765
2024/10/28
1020
算法之递归
面向对象练习题笔记(1)
        面向对象就是把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。
周小末天天开心
2022/10/26
2230
面向对象练习题笔记(1)
编程入门、进阶100例(11-15)
样例输入:2014 3 4 样例输出:63 样例输入:2000 3 1 样例输出:61
Gorit
2021/12/09
4660
编程入门、进阶100例(11-15)
曾经做过的40道程序设计课后习题总结(二)
曾经做过的40道程序设计课后习题总结(二) 课后习题目录 1 斐波那契数列 2 判断素数 3 水仙花数 4 分解质因数 5 杨辉三角 6 学习成绩查询 7 求最大公约数与最小公倍数 8 完全平方数 9 统计字母、空格、数字和其它字符个数 10 求主对角线之和 11 完数求解 12 求s=a+aa+aaa+aaaa+aa...a的值 13 高度计算 14 乘法口诀 15 无重复三位数 16 菱形打印 17 利润计算 18 第几天判断 19 从小到大输出数列 20 猴子吃桃问题 21 乒乓球比赛 22 求分数之
闵开慧
2018/04/02
8180
编程题7-12答案
验证“鬼谷猜想”:对任意自然数,若是奇数,就对它乘以 3 再加 1;若是偶数,就对它除以 2,这样得到一个新数,再按上述计算规则进行计算,一直进行下去,最终必然得到 1 public class HomeWork13 { public static void main(String[] args) { /* * 验证“鬼谷猜想”:对任意自然数,若是奇数, * 就对它乘以3再加1;若是 偶数,就对它除以2, * 这样得到一个新数,
三哥
2018/06/15
6280
C++不知算法系列之集结基础算法思想
数据结构和算法是程序的 2 大基础结构,如果说数据是程序的汽油,算法则就是程序的发动机。
一枚大果壳
2022/12/20
4120
C++不知算法系列之集结基础算法思想
【编程题】Java编程题二(10道)
【编程题】Java编程题二(10道) 【程序11】 题目:有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? public class lianxi11 { public static void main(String[] args) { int count = 0; for(int x=1; x<5; x++) { for(int y=1; y<5; y++) { for(int z=1; z<5; z++) {
Java帮帮
2018/03/19
1.2K0
国庆七天乐,要猛! ——经典迷宫问题
1)先创建迷宫,使用二维数组表示,int[][] map = new int [8][7]
周小末天天开心
2022/10/26
1900
国庆七天乐,要猛! ——经典迷宫问题
我整理了50道经典Java算法题,直接进了字节跳动!!
作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:
冰河
2020/10/29
1.4K0
Qz学算法-数据结构篇(表达式、递归)
从右至左扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(栈顶元素和次顶元素),并将结果入栈:重复上述过程直到表达式最左端,最后运算得出的值即为表达式的结果
浅辄
2023/06/09
3110
【蓝桥杯Java_C组·从零开始卷】第三节、while循环&do while循环for循环(超重点)&break终止循环&continue结束本次循环
所有的循环无论怎么封装,都会遵循着这是个点,就算用hash的方法也算是迭代器的用法。
红目香薰
2022/11/29
6290
java概念2
1 文件操作 public class FileTest { public static void main(String[] args) throws IOException{        //从硬盘文件到内存,然后从内存中写文件到硬盘另外一个地方,并在屏幕上打印出来。        String srcPath="D:\\poem.txt";        String desPath="D:\\desFile\\poem.txt";        File fileSrc=
闵开慧
2018/03/30
1.6K0
Java基础测试「建议收藏」
public class Practice{ //入口方法 public static void main(String[]args){ //1.百钱百鸡 checken(); //2.素数 primeNumber(100,200); //3.打印图形 graphical(4); multiplicationTable(); //4.年龄 int age=getAge(5); System.out.println(“第五个人”+age+”岁”); //5.杨辉三角 printYang(10); //6.排序 int[]num={12,34,98,3,7,11}; System.out.println(“原始数组”); print(num); //冒泡排序 System.out.println(“冒泡排序”); bubbleSort(num); //选择排序 System.out.println(“选择排序”); selectSort(num); System.out.println(“插入排序”); insertSort(num); //7.猴子桃子 System.out.println(“一共有”+peach()+”个桃子”); } /* 1.编写程序解决“百钱买百鸡”问题。公鸡五钱一只,母鸡三钱一只,小鸡 一钱三只,现有百钱欲买百鸡,共有多少种买法? money:5*n1+3*n2+1/3*n3=100 n:n1+n2+n3=100 */ public static void checken(){ //外层循环买公鸡 for(int n1=0;n1<20;n1++){ //内层循环买母鸡 for(int n2=0;n2<33;n2++){ //判断 if(15*n1+9*n2+(100-n1-n2)==300){ System.out.println(“买法:”+n1+”\t”+n2+”\t”+(100-n1-n2)); } } } } /** 2.判断100-200之间有多少个素数,并输出所有素数。 */ public static void primeNumber(int low,int hig){ for(int i=low;i<=hig;i++){ for(int j=2;j<=i;j++){ if(i%j==0){ if(i!=j){ break; }else{ System.out.print(i+”\t”); } } } } System.out.println(); } /* 3.输出以下图形 * 1*1=1 *** 1*2=2 2*2=4 ***** 1*3=3 2*3=6 3*3=9 ******* …. */ public
全栈程序员站长
2022/09/08
3030
Java 版 C 语言经典 100 例(21 - 25)
图形可拆分为两部分来看待,前四行一个规律,后三行一个规律,利用双重 for 循环,第一层控制行,第二层控制列
村雨遥
2020/06/28
4080
Java经典编程50题(面试笔试机试)
https://blog.csdn.net/alias_fa/article/details/52985112
林万程
2018/09/02
12.3K0
《JavaSE-习题篇二》之七个题目,十六张图,让你不惧递归。
学习方法后,我们来学习一种特殊调用方法的方式,即递归。本篇文章将介绍什么是递归,以及递归的使用规则和注意事项,最后通过几道经典的题目来加深对递归的理解。
用户10517932
2023/10/07
2300
《JavaSE-习题篇二》之七个题目,十六张图,让你不惧递归。
相关推荐
25道经典Java算法题(含代码)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验