この問題に頭を悩ませているだけです。どんな助けでも大歓迎です。
プログラムは、各入力数値の除数の合計を計算するテキスト ファイルを読み取る必要があります。たとえば、数値 20 の合計は 1+2+4+5+10=22 です。次に、これらの合計が行ごとに合計されます。次に、除数を超えるこれらの合計のそれぞれについて見つけ、最後にそれらを合計します。
例 初期ファイル 1 2 4 6 15 20
25 50 100 125 250 500
16 8 3
次に、除数の合計を計算します。
1 1 3 6 9 22
6 43 117 31 218 592
15 7 1
行ごとにまとめた
42
1007
23
次に、上記の合計が計算されます。
54
73
1
そして、最終的に合計して戻ってきました。
128
スレッドプールによって新しい行が完了するたびにプロセスを完了する必要があります。
私の論理は次のとおりです。
5.2. For each input line (Add each line to an ArrayBlockingQueue,
Then add each item in the Queue to an ExecutorService Which will run the follow)
5.2.1. Parse the current input line into integers
5.2.2. For each integer in the current input line
5.2.2.1. Compute the sum-of-divisors of this integer
5.2.2.2. Add this to the cumulated sum-of-divisors
5.2.3. Compute the sum-of-divisors of this cumulated sum
5.2.4. Add this to the grand total
5.2 の後で行き詰まりました。実行可能なインターフェイスを実装する新しいクラスを作成し、累積合計をatomicArray に追加するか、呼び出し可能なインターフェイスを実装するクラスを作成し、累積合計を返すようにするのが最善ですか? または、まったく異なる方法があります。
これは私がこれまでに持っていたもので、目的の結果を返しますが、連続した問題です。