热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《在不使用任何循环或条件的情况下打印特定范围内的数字(Java)》经验,为你挑选了2个好方法。

也许首先想到的是解决这类问题是递归函数,但是在没有任何条件的情况下编写递归函数也是一个挑战.

我试过这种方法打印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 算术异常,它仍然不是一个更好的解决方案,因为它处理异常(运行时错误).

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

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

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



1> Santiago Sal..:

你可以做这样的事情:(从这个答案中获取的想法)

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();}



}



2> ToYonos..:

基于@ Imposter的答案,减少版本具有紧凑但可读的代码

class Sandbox
{
    public static void main(String args[]) throws Exception
    {
        System.out.println(getfalse(10, 60));
    }

    public static String getfalse(Integer start, Integer stop) throws Exception
    {
        return
            start + "\n" +
            Sandbox.class.getMethod("get" + (start == stop), Integer.class, Integer.class)
            .invoke(Sandbox.class, start+1, stop);
    }

    public static String gettrue(Integer start, Integer stop)
    {
        return "";
    }
}


推荐阅读
author-avatar
dwxa520恋歌_261
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有