「牛の舌って薄いんですね」

蒼樹うめ『ひだまりスケッチ』第 6 巻「一頭から一枚」より

ふみをチャレンジ[3]

とりあえず3日間やって来れた。三日坊主打破まであと1日。でも問題は明後日以降かな、大学始まるし。実はもう始まってるんだけど。ロックマンエグゼ2のハードモードが意外と難しい…
あと、ですます調やめた。

問題

0002: Digit Number - AIZU ONLINE JUDGE

桁数を求めるには、

figure = (int)log10( variable ) + 1

みたいにすればいいってここに書いてあったから、それを利用した。

答案

C
#include <stdio.h>
#include <math.h>

int main() {
  int a, b, sum, digit;
  
  while(scanf("%d %d", &a, &b) != EOF) {
    sum = a + b;
    digit = (int)log10(sum) + 1;
    printf("%d\n", digit);
  }
  
  return 0;
}

反省

問題分の「入力の終わりまで処理して下さい」の意味がわからなくて、whileを無限ループにして提出したらTime Limit Exceededだと言われた。AOJのWEB Boardで確認すると、

while(scanf("%d", &n) != EOF) {
  /* ここに処理 */
}

こういうことだったそうだ。なるほど。
後ろの方の問題をチラッと見たら、かなり難しそうなんだけど大丈夫かな…