数字以及可被另一个数字整除的数字(例如3)

时间:2018-01-17 15:02:49

标签: java arrays

这与java有关。 我试图找出一个范围内的数字,这个数字可以被特定的数字整除,即X.数字的数字也可以被数字X整除。 例如:范围30至40 所以数字30,33,36,39可以被3整除,数字也可以被3整除。 但是在我编写的代码中,循环逻辑似乎不正确,因为它只给出了30和33作为输出。 你能帮我理解一下吗?

代码:

public class Char{
    public static void main(String args[]){
        //Fill the code
        int m,n,i,z = 0;
        int x = 3;

        Scanner sc = new Scanner(System.in);
        System.out.println("Enter the range for shipment numbers :");
        m = sc.nextInt();
        n = sc.nextInt();
        //while (m!=0 && n!=0){
        System.out.println("Possible shipment numbers :");
            for (i=m;i<=n;i++){
                if(i%10==z){
                    if(z%x==0);
                    z=i/10;
                    System.out.println(i);
                    }

                }


            }

}

代码:

1 个答案:

答案 0 :(得分:0)

您需要迭代主循环变量 i 每个数字。你需要一个内环(下面的'while')来检查 i 的每个数字:

    int m, n, i, z = 0;
    int x = 3;
    boolean div;

    Scanner sc = new Scanner(System.in);
    System.out.println("Enter the range for shipment numbers :");
    m = sc.nextInt();
    n = sc.nextInt();
    System.out.println("Possible shipment numbers :");
    for (i = m; i <= n; i++) {
        z = i;
        div = true;
        while (z > 0) {
            if (z % 10 % x != 0) {
                div = false;
                break;
            }
            z /= 10;
        }
        if (div) System.out.println(i);
    }

现在这适用于更大的数字范围。例如,运行给出:

  

输入装运编号范围:300 400可能装运   数字:300 303 306 309 330 333 336 339 360 363 366 369 390 393 396   399