2

私は自分のコンピューター コースの課題に取り組んでおり、私たちのタスクは、配列「数字」を分析し、各数字を表す配列を返すメソッドを作成することです。

つまり、{ 100, 200.1, 9.3, 10} の場合、1 は 50% の確率で先頭の数字として発生し、2 は 25% の確率で発生し、9 は 25% の確率で発生するため、生成された配列には {0, .5、.25、0、0、0、0、0、0、.25}

開始に問題があります。たとえば、countLeadingDigits というヘルパー メソッドを作成して、各桁のカウントの配列を返し、その後でパーセンテージを計算することをお勧めします。ユーザーから不明な数の入力 double を取得し、各桁が先頭の桁として表示される回数を格納するメソッドを作成する方法がわかりません。計算するコードの部分は既に作成しています先頭の桁。ヒントはありますか?

4

1 に答える 1

1

短くて集中的なコードを使用したソリューション:

public static void main(String[] args)
{
    double[] inputs = { 100, 200.1, 9.3, 10 , -100 }; // your inputs
    double sum = inputs.length;

    int[] leadingDigitCounters = new int[10]; // counters for 0...9

    // Here is how you increment respective leading-digit counters
    for (double d : inputs) 
    {
        int j = Integer.parseInt((d + "").replace("-", "").charAt(0) + "");
        leadingDigitCounters[j]++;
    }   

    // Printing out respective percentages
    for (int i : leadingDigitCounters)
        System.out.print((i / sum) + " ");
}

出力:

0.0 0.6 0.2 0.0 0.0 0.0 0.0 0.0 0.0 0.2

于 2012-10-20T19:57:49.763 に答える