0

このための最小限のコードを持つことは可能かどうか疑問に思います:

for (int x = 1; x < 10; x++){    
      /*I want to replace this condition with (x%number == 0) 
        instead of writing out condition for every number, but 
        it did not work with for (int number = 1; number <= 3; number++)
        in (x%number == 0), as it prints out every x and number 
      */
    if ((x%1) == 0 && (x%2) == 0 & (x%3) == 0){
       System.out.println(success!);
    }    
}
4

3 に答える 3

3

x % (a * b * c) == 0
x % a == 0 && x % b == 0 && x % c == 0
と等しいと思います

UPDATE
乗算が正しくありません。LCMを使用する必要があります。x % lcm(a, b, c)

于 2012-08-18T12:38:24.997 に答える
1

見てください:

for (int x = 1; x < 10; x++){
  boolean flag = false;
    for(int num = 1; num <= 3; num++){
       if ((x%num) == 0 ){
          flag = true;
       }else{
          flag = false;
          break;
       }
    }
    if(flag){
            System.out.println(x + " success!");
    }
}

出力:

6 success!

コードが少しぞっとするように見えることはわかっていますが、 と の任意の値に対して機能しますxnum

于 2012-08-18T12:38:42.080 に答える
1

これは、コンプ科学の教授を満足させるために必要なものです。

for (int x = 1; x < 10; x++){    
    boolean success = true;
    for (int number = 1; number <= 3; number++) {
        if ((x % number) != 0) {
            success = false;
        }
    }
    if (success) {
       System.out.println("success!");
    }    
}

注: (x % 1) は常に 0 です。

これは、「ネストされたループを避ける」という私のルールに従って、私を幸せにするために必要なものです。

for (int x = 1; x < 10; x++) {
    if (testNumber(x)) 
        System.out.println(x + " success!");
    }
}

private static boolean testNumber(int x) {
    for (int number = 1; number <= 3; number++) {
        if ((x % number) != 0) {
            return false;
        }
    }
    return true;
}
于 2012-08-18T13:10:18.473 に答える