ウイルス
1257 ワード
Bさんは最近、解読やプログラム攻撃に興味を持ち、ウイルスに夢中になり、恐ろしいことが起こった.なぜか分からないが、Bさんの技術レベルがまだ高くないのか、Bさんが書いたウイルスプログラムがサーバーを攻撃したときに問題があったのかもしれない.サーバへの侵入に成功したにもかかわらず、期待通りに機能しなかった.
Bさんの目的は簡単です.サーバのメモリ領域を制御し、メモリに1からnまでの自然数を入れてメモリ領域を上書きしようとします.Bさんのプログラミングに対する理解の問題かもしれませんが、ウイルスは完全に成功していないようです.保護メカニズムのためか、メモリ書き込みはバイナリ形式のみを受け入れるため、0と1を除く10進数表現の値はメモリに正常に書き込まれませんでした.Bさんは、サーバーのメモリに成功した数がどれくらいあるか知りたいと思っています.
入力
入力には複数のテストデータがあります.各試験データのセットは、個別の行において整数n(1<=n<=10^9)である.
しゅつりょく
各テストデータのセットについて、質問の答えを個別の行に出力します.
サンプル入力
10
20
サンプル出力
2
3
JavaScript実装:
var dataIn = [],
data = [],
temp, i = 0,
j = 0,
max, len, dataLen;
max = parseInt(1000000000, 2);
//
for (i = 1; i <= max + 1; i++) {
data.push(parseInt(parseInt(i).toString(2)));
}
//
while (temp = read_line()) {
if (temp) {
dataIn.push(parseInt(temp));
}
}
dataLen = data.length;
len = dataIn.length;
//
for (i = 0; i < len; i++) {
for (j = 0; j < dataLen; j++) {
if (data[j] > dataIn[i]) {
print(j);
break;
}
}
}