すべての要素が0より大きく、最大偶数より小さいすべての偶数が配列内にある場合、配列は完全であると定義されます。 java tricky questions complete array
のように、{2、3、2、4、11、6、10、9,8}が完了しています。すべての要素が0より大きく0
bです。最大偶数は10 cです。 10(2、4、6、8)未満のすべての偶数が配列内にあります。
ただし、偶数4がないため、{2,3,3,6}は完全ではありません。 {2,3,4,3,6}は、負の数を含んでいるため、完全ではありません。 配列の引数が完全な配列である場合、1を返すisCompleteという関数を作成します。それ以外の場合は0を返します
これは私が解決しなければならない質問ですが、私はこの質問の良い論理を見つけることができません。ここでは、最初のループと2番目のループの配列から最大の偶数を見つけました。最大の偶数よりも少ない偶数をすべてチェックしなければなりません。
for(int c = 2; c<=maxeven;c=c+2){
count = 0;
for(int b = 0;b<i.length;b++){
あなたの問題を解決する必要があること:私のコードは次のように、第二のループに
public class Complete {
public static void main(String[] args) {
System.out.println(isComplete(new int[]{2,3,2,4,11,6,10,9,8}));
System.out.println(isComplete(new int[]{2,3,3,6}));
System.out.println(isComplete(new int[]{2,-3,4,3,6}));
}
private static int isComplete(int[] i) {
int set = 1;
int maxeven = 0;
int count = 0;
for(int a = 0; a < i.length; a++) {
if(i[a] < 0) {
set = 0;
break;
}
if(i[a]%2 == 0 && i[a] > maxeven) {
maxeven = i[a];
}
}
for (int c = 2; c <= maxeven; c=c+2) {
for(int b = 0; b<i.length; b++) {
if (c == i[b]) {
count++;
}
}
if (count > 0) {
set = 1;
} else {
set = 0;
break;
}
}
return set;
}
}
まず、 'set = 0;'と 'break'を置き換えることができます。 'return 0;と – Stefan
クラス名は大文字で始まります – Michu93
ああ、訂正しました。ありがとうございます –