gpt4 book ai didi

java - 在不使用任何循环或条件的情况下打印特定范围内的数字 (Java)

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:38:26 26 4
gpt4 key购买 nike

也许解决这类问题的第一个想法是递归函数,但编写没有任何条件的递归函数将是一个挑战。

我试过这种方法来打印从 10 到 60 的数字:

public static void printNumbers(int n){
int divisonByZero = 1 / (61 - n);
System.out.println(n);
printNumbers(n+1);
}
public static void main(String[] args) {
printNumbers(10);
}

但是如果没有异常处理,它会在到达数字61时崩溃

即使使用 try catch the Arithmetic Exception,它仍然不是一个可取的解决方案,因为它正在处理异常(运行时错误)。

我认为使用递归函数时的主要问题是停止条件。

我还读到,在 C++ 中有一种方法,通过创建一个带有静态变量计数器的类并对其进行初始化,然后递增计数器变量并在构造函数中打印它,之后实例化类计数器的对象数量将打印这些数字.

任何解决这一挑战的建议解决方案都将不胜感激。

最佳答案

你可以这样做:(想法取自 answer )

public class Application {

public static void main(String[] args) {
Print40Numbers();
Print10Numbers();

}

private static int currentNumber = 10;

private static void Print1Number() { System.out.println(currentNumber++); }
private static void Print2Numbers() { Print1Number(); Print1Number(); }
private static void Print5Numbers() { Print2Numbers(); Print2Numbers(); Print1Number(); }
private static void Print10Numbers() { Print5Numbers();Print5Numbers();}
private static void Print20Numbers() { Print10Numbers();Print10Numbers();}
private static void Print40Numbers() { Print20Numbers();Print20Numbers();}



}

关于java - 在不使用任何循环或条件的情况下打印特定范围内的数字 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44399118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com