2016-11-17 28 views
0

generatePrizesは、宝くじピックのサイズと合計prizeMoneyに基づいて賞金額の配列を作成します。配列の位置は、宝くじピック内の正しい数字の数に対応します(ゼロからサイズまで)。配列の要素を特定のアルゴリズムで設定する方法は?

賞金を発生させるアルゴリズムは以下の通りです。プレイヤーが0,1,2のいずれかの数字を正しく推測した場合、賞金額は0です。残りの賞金は、すべての数字を正確に推測し始めて、賞金の3/4を獲得し、最も近いドル、最後の数(3は正しい)残りのものを受け取る。たとえば、宝くじが6つの数字で、賞金が1000であれば、6は正解、750は正解、残りの3/4は正解、188は正解、残りの3/4は正解、47は正解です。 15.残りの3つの数字と500の賞金があった場合、3つの一致する数字がすべて500を得ます。戻り値(賞品)の配列の長さは、抽選の数字の数よりも1つ多いことに注意してくださいサイズには0と賞の賞金が含まれている必要があるため)。

この方法を私が想定している方法で動作させる方法を理解できないようです。私は以下のコードを試してみましたが、すべての要素を同じ数で塗りつぶすだけで、どのように変更できますか?

public static int[] generatePrizes(int size, int prizeMoney) { 
int[] prizes = new int[size + 1]; 
int remainder = 0; 
for (int i = 0; i < 2; i++) { 
    prizes[i] = 0; 
} 
for (int j = size; j > 2; j--) { 
    prizes[j] = (int)Math.round(prizeMoney * .75); 
} 


    return prizes; 
} 
+0

タグに使用している言語を追加してください! –

+0

@tibsar oops for lol –

答えて

1
public static int[] generatePrizes(int size, int prizeMoney) { 
    int[] prizes = new int[size + 1]; 
    int remainder = prizemoney; 
    int lottery = prizeMoney ; 
    for (int j = size; j > 3; j--) { 
     prizes[j] = lottery ; 
     remainder= remainder - prizes[j]; 
     lottery = (int)Math.round(remainder* .75); 
    } 
    for (int k = 3; k >= 0; k--) { 
     prizes[k] = remainder; 
     remainder = 0; 
    } 
    return prizes; 
} 

このsolve.Youは、残りの賞金額を更新していなかったはずです。

関連する問題