A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

   前两天上课讲了一个逢七过的案例,不过那是固定了范围(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);
            }
        }
    }
}   仅是效果方面到达了,程序还有很多优化的地方,欢迎大神指点

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马