0

私はこの問題を抱えています。コードを記述し、配列内の数値が数値 (goodValue、および badValue) で割り切れるかどうかをチェックすることになっています。良い値と悪い値が配列内の数値で割り切れる場合は、+2 を追加します。 、数値が良い値で割り切れる場合は +1 を追加し、値が badValue でのみ割り切れる場合は 1 を減算します。

public class Array {
    static int[] ArrayA ={8, 4, 3, 12, 7, 9};
    static int[] ArrayB ={3, 8, 14, 12, 10, 16, 6};
    static int score;

public static void main(String [] args){

    score = scoreArray(ArrayA, 2, 3);
    System.out.println("First score for arrayA: " + score);
    score = scoreArray(ArrayA, 3, 4);
    System.out.println("Second score for ArrayA: " +score);
    score = scoreArray(ArrayB, 5, 2);
    System.out.println("First score for ArrayB: " +score);
    score = scoreArray(ArrayB, 3, 7);
    System.out.println("Second score for ArrayB: " +score);


}

private static int scoreArray( int [] theArray, int goodValue, int badValue){
    for (int i=0; i<=theArray.length; i++){
        if((i%goodValue & i%badValue)==0){
            score=+2;               
        }
        else if (i%goodValue==0){
            score=+1;
        }
        else if((i%badValue==0)){
            score= -1;
        }
        score+=score;
    }

    return score;

    }
}

私はこれを取得することになっています

Firts score for arrayA: 1
Second score for arrayA: 3
First sccore for arrayB: -3
Second score for ArrayB: 2

そして、私はこれを取得しています

First score for arrayA: 2
Second score for ArrayA: 2
First score for ArrayB: 2
Second score for ArrayB: 2
4

2 に答える 2

0
 public class Array 
{
static int[] ArrayA ={8, 4, 3, 12, 7, 9};
static int[] ArrayB ={3, 8, 14, 12, 10, 16, 6};
static int score=0;

public static void main(String [] args)
{

score = scoreArray(ArrayA, 2, 3);
System.out.println("First score for arrayA: " + score);
score = scoreArray(ArrayA, 3, 4);
System.out.println("Second score for ArrayA: " +score);
score = scoreArray(ArrayB, 5, 2);
System.out.println("First score for ArrayB: " +score);
score = scoreArray(ArrayB, 3, 7);
System.out.println("Second score for ArrayB: " +score);


}

public static int scoreArray( int [] theArray, int goodValue, int badValue)
{    score =0;
for (int i=0; i<theArray.length; i++)
{

 if(((theArray[i]%goodValue)==0) && ((theArray[i]%badValue)==0))
  {

      score = score+2;           

  }
   else if (theArray[i]%goodValue==0)
    {
       score = score+1;   
    }
    else if((theArray[i]%badValue==0))
    {
       score = score+(-1);  
    }



}
return score;
 }
  }

あなたの要件に応じて問題なく動作します...問題があればコメントを投稿してください。

  output
  First score for arrayA: 2   
  Second score for ArrayA: 2
  First score for ArrayB: -3
  Second score for ArrayB: 2
于 2013-05-08T05:44:19.370 に答える
0

打ち間違いですか…。

score=+2;

する必要があります

score += 2;

同様に、他のelseステートメントでは、

score += 1; 

score -=1;

問題で言及した文言を完全には理解していないと思います。ある場所で数値を使用し、別の場所で値を使用しているため、混乱しています。

スコア計算ロジックを改善しましたが、期待どおりの答えが得られません

private static int scoreArray( int [] theArray, int goodValue, int badValue){
            score = 0;
    for (int i=0; i<theArray.length; i++){
        if(((theArray[i]%goodValue)==0) && ((theArray[i]%badValue)==0)){
            score += 2;             
        }
        else if (theArray[i]%goodValue==0){
            score+=1;
        }
        else if((theArray[i]%badValue==0)){
            score -= 1;
        }
    }
    return score;
    }
}
于 2013-05-08T04:15:40.320 に答える