有没有办法从1到100打印数字而不使用任何循环或条件,如"如果"?我们可以很容易地使用递归但是又有一个if条件.有没有办法不使用"if"?也没有重复的打印语句,或包含1到100之间所有数字的单个打印语句.
Java中的解决方案更可取.
也许首先想到的是解决这类问题是递归函数,但是在没有任何条件的情况下编写递归函数也是一个挑战.
我试过这种方法打印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);
}
Run Code Online (Sandbox Code Playgroud)
但是当它达到数字61
而没有异常处理时它会崩溃
即使使用try catch 算术异常,它仍然不是一个更好的解决方案,因为它处理异常(运行时错误).
我认为使用递归函数时的主要问题是停止条件.
我还读到在C++中有一种方法是通过创建一个带有静态变量计数器的类并初始化它然后递增计数器变量并在构造函数中打印它,之后实例化类计数器的对象将打印这些数字.
任何建议的解决方案来解决这一挑战将不胜感激.