2017-12-04 35 views
0

最初の質問は、与えられた非負の数値が3または5の倍数であれば真を返すように求められています。例は次のとおりです。偽簡単なプログラミングの練習(モジュラス演算を使用して)

→真

old35→真

old35(10)→

old35(3)(15)、それは3の倍数だように3は、本当だろうが、私現在、すべてのインスタンスに対して自分のコードを動作させることはできません。以下のコード。

public boolean old35(int n) { 
    if ((35 % n == 3) || (35 % n == 5)) 
     return true; 
    return false; 
} 

どのように私は練習を行うために私に言っているものの基準に合わせて、これを編集することができますか? >

答えて

0

詳細な説明をします。まず、剰余記号を使用して、剰余がゼロの条件をチェックします。あなたの条件のための1つの翻訳へのいずれかのその後

n % 3 == 0 

n % 5 == 0 

、としてそれらを一緒に置く:それらを一緒に追加(と)

((n % 3 == 0) || (n % 5 == 0)) // Multiple of 3 or 5 

!((n % 3 == 0) && (n % 5 == 0)) // But not both 

public static boolean old35(int n) { 
    return(((n % 3 == 0) || (n % 5 == 0)) && !((n % 3 == 0) && (n % 5 == 0))); 
} 

しかし、あなたがやっていることはXOR(^)の操作で簡単に、次のコードは、有効かつ簡単です:

public static boolean old35(int n) { 
    return((n % 3 == 0)^(n % 5 == 0)); 
} 
0

条件の論理XORを使用できます。基本的にはC1^C2です。 編集:3の倍数を確認するには、n % 3 == 0、5の倍数に同じをチェックする必要があります。

+0

私はXOR演算子を使用する悪い習慣です聞きました、コードをきれいに保ちながら、他の方法はありますか? – Tyler

+0

あなたは、3ではなく5で割り切れるか、または3でなく5で割り切れるかを調べることができます –

関連する問題