1

2 つのメソッドを作成しようとしていますが、他のメソッドは正常に動作しています。問題は、入力が乱数 (例: 5 4 3 2) であり、ユーザーが推測する入力 (例: 5 3 6 1) である疑似一致カウンターであり、出力は次のようになります: 疑似一致: 1 および一致: 2。 Pseudo Match メソッドで間違っているところです。

public int match(int[] guess) //Counts the number of matches
{
    int count = 0;

    for(int i = 0; i<3; i++) 
    {
        if (lotteryNumbers[i] == guess[i])
        {
            count++;
        }

    }
    return count;
}
//First add psuedo counter for current program
//Then modify for multiple variables.

//Single slot to Single slot.
public int psuedoMatch(int[] guess)
{  
    boolean arraysEqual = true;
    int psuedoCount = 0;

    //Determine same size:
    if (lotteryNumbers.length != guess.length) 
    {
        arraysEqual = false;
    }

    //Determine if elements contain same data:

    while (arraysEqual && psuedoCount < 3) // guess.length
    {
        if (lotteryNumbers[psuedoCount] != guess[psuedoCount] )
        {
            arraysEqual = false;
        }
        psuedoCount++;
    }

    return psuedoCount;
}
4

2 に答える 2

0

私はあなたがやろうとしていることは次のとおりだと思います:

public int psuedoMatch(int[] guess) {          
    int psuedoCount = 0;

    //Determine same size:
    if (lotteryNumbers.length != guess.length) {
        return psuedoCount;
    }

    //Determine if elements contain same data:

    for(int i=0; i<lotteryNumbers.length || psuedoCount < 3; i++) {

        //I think you want to count all the matches till you have 3 matches
        if (lotteryNumbers[psuedoCount] == guess[psuedoCount]) {
            psuedoCount++;
        }            
    }

    return psuedoCount;
}
于 2012-10-24T03:06:30.817 に答える
0

これら 2 つの配列の一致数を見つけようとしていると思いますが、疑似カウンター メカニズムに追加できるように、等しい要素の相対インデックスは異なる必要があります。したがって、この方法を見て、試してみてください。

public int psuedoMatch(int[] guess)
{
    int psuedoCount = 0;

    if (lotteryNumbers.length != guess.length)
        return 0;

    int size = lotteryNumbers.length;

    // Determine if elements contain same data, but at different indexes!

    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) {
            // Denote the inequality check i != j
            if (lotteryNumbers[i] == guess[j] && i != j)
                psuedoCount++;
        }
    }

    return psuedoCount;
}
于 2012-10-24T03:16:17.633 に答える