黑马程序员技术交流社区

标题: 逢7过加强版,任意范围内逢7过的数字 [打印本页]

作者: 15967009692    时间: 2019-6-26 21:33
标题: 逢7过加强版,任意范围内逢7过的数字
   前两天上课讲了一个逢七过的案例,不过那是固定了范围(0~100),课后我进行了调整,将效果改成任意区间的逢七过数字。   主要是通过将数字的每个位的数字拆分进行比较,而不是通过各位%10,十位/10%10的方式public static void main(String[] args) {
    while (true) {
        Scanner sca = new Scanner(System.in);
        System.out.println("输入一个范围");
        System.out.println("请输入起始位置");
        int a = sca.nextInt();
        System.out.println("请输入起始结束");
        int b = sca.nextInt();        getNum(a,b);
    }
}
public static void getNum(int a,int b) {
    for (int i = a; i <= b; i++) {

        /*把输入的int数字,转化成String类型
          再将String类型的数字,全部拆开存入char数组中
          如 123 ,拆成 '1' '2' '3',存放在数组里面
        */
        char[] chars = (i + "").toCharArray();
        //遍历数组
        for (int j = 0; j < chars.length; j++) {
        //如果是7的倍数就直接打印输出,结束循环
            if (i % 7 == 0) {
                System.out.println(i);
                break;
         //char数组中有数字7,也输出打印
            } else if (chars[j] == '7') {
                System.out.println(i);
            }
        }
    }
}   仅是效果方面到达了,程序还有很多优化的地方,欢迎大神指点






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2