タグ

QiitaとAtCoderに関するmohnoのブックマーク (1)

  • 浮動小数点数オタクが AtCoder Beginner Contest 169 のC問題をガチで解説してみる - Qiita

    どうも、浮動小数点数オタクのmod_poppoです。 昨日開催された ABC169 の C 問題が浮動小数点数の罠な問題だったらしいので、どこが罠なのか、そしてどうすれば罠を回避できるのかを解説してみます。 また、典型的な誤答に対しては、それを落とすためのテストケースも用意しました。 問題文(引用) まず最初に問題文を引用しておきます。 AtCoder Beginner Contest 169 | C - Multiplication 3 問題文 $A\times B$ の小数点以下を切り捨て、結果を整数として出力してください。 制約 $0\le A\le 10^{15}$ $0\le B<10$ $A$ は整数 $B$ は小数第 2 位まで与えられる 入力 入力は以下の形式で標準入力から与えられる。

    浮動小数点数オタクが AtCoder Beginner Contest 169 のC問題をガチで解説してみる - Qiita
    mohno
    mohno 2020/06/02
    Bを100倍後に四捨五入、が現実的だろうな。入力書式が決まっているならC言語(←オイコラ)→#include <stdio.h> #include <stdint.h> int main(void) { int64_t a; int b, c; scanf("%lld %d.%d", &a, &b, &c); printf("%lld\n", a * (b * 100 + c) / 100); }
  • 1