「java区域递归」Java方法递归
本篇文章给大家谈谈java区域递归,以及Java方法递归对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java递归问题
用map,key就是你的a1,a2,a3,value就是你的值
递归写的时候就可以取key和value了
java递归方法
一般递归只实现一个方向的逻辑,把两个方向的逻辑放到一方法里并不好,不容易控制,实现也很麻烦,考虑到维护时的难度请不要在实际项目中使用。
搞了好一会,搞出个这样的输出2N-1行星号,中间最长的一行不重复,如果楼主希望重复中间一行,可以对代码做一点点改动。
/**
* 入口,传入N
*/
public static void printStar(int number){
printStar2(number, number, 1);
}
/**
*
* @param number 给定的N
* @param oldNumber 给定的N
* @param direction 递归时的方向
*/
public static void printStar2(int number,int oldNumber, int direction){
if(number==0)direction++;
String s="";
int i = number;
if(direction==1){
for(;ioldNumber;i++){
s+="*";
}
number--;
}else{
for(;ioldNumber;i++){
s+="*";
}
number++;
if(numberoldNumber){
return;
}
}
printStar2(number,oldNumber,direction);
System.out.println(s);
}
-----------------------------------------------------------------------------------------
运行效果:
printStar(5);
*
**
***
****
*****
****
***
**
*
java 递归问题
(1) 递归就是在过程或函数里调用自身;
(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。
递归算法一般用于解决三类问题:
(1)数据的定义是按递归定义的。(Fibonacci函数)
(2)问题解法按递归算法实现。(回溯)
(3)数据的结构形式是按递归定义的。
下面这个例子以递归的方法计算n的阶乘。
public class Test {
public static int factorial(int n){
if(n == 0){
return 1;
}else{
return n * factorial(n-1);
}
}
public static void main(String[] args) {
System.out.println(factorial(3));
}
}
JAVA递归问题
实际上递归只需要将迭代中字符添加的顺序颠倒过来就可以了,具体代码如下:
import java.lang.String;
import java.util.Scanner;
public class Exos8{
public String numCal(int a, int n){
if(n==1){
return Integer.toString(a,10);
}else{
if(a10){
return Integer.toString(a%10) + this.numCal(a+1,n-1);
}else{
a = a/10;
return Integer.toString(a%10) + this.numCal(a+1,n-1);
}
}
}
public static void main(String[] args){
String result = "";
Exos8 exo = new Exos8();
System.out.println("请输入一个1到9之间的数:");
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
System.out.println("请输入循环次数:");
int n = sc.nextInt();
System.out.println("结果为:"+exo.numCal(a,n));
}
}
这个方法可以得到长度不仅限于10位以内的数字(字符串)。
关于java区域递归和Java方法递归的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-30,除非注明,否则均为
原创文章,转载请注明出处。