2017-11-06 6 views
-1

ファイルからいくつかのバイナリ表現を読み、それを合計して、ゼロと1つの出現数を見つけようとしました。 問題は、いくつかの数字が失われたり、何が起こったかなどです。そのため、合計の桁数はゼロと1の合計よりも大きくなります。ここ は私のコードです:ゼロと1の2進数Scala

val binaryNums = Source.fromFile("path/task2.txt").getLines.map(BigInt(_)).toList 
val sumOfBins = binaryNums.sum.toString 
println("Zeroes occurrence " + sumOfBins.count(_ == '0')) 
println("Ones occurrence " + sumOfBins.count(_ == '1')) 

あなたが間違いを見つけるために私を助けた場合、私は本当に感謝されます。

更新:ファイルの内容は次のようになります(各番号で約800桁) enter image description here

+2

あなたの質問は不明です。あなたは入力(ファイルの内容)と期待される出力の小さな例を提供できますか? – jwvh

答えて

1

デフォルトでは、toStringは数値を10進表記に変換します。バイナリに変換するには、toStringに基数引数を指定する必要があります。

val sumOfBins = binaryNums.sum.toString(2) 
関連する問題