srupのメモ帳

競プロで解いた問題や勉強したことを記録していくメモ帳

yukicoder No.285 消費税2

問題

問題概要

省略

解法

誤差を全く許さない問題。このような時は整数型で計算する。そのためには、1.08倍をするのではなく、108倍をすればいい。ここで100で割るのではなく、下から2桁目に小数点をつけて表示すればいい。

ミス

特になし。

コード

#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
#define rep(i,n) for(int i=0;i<(n);i++)

int main(void){
    long long d; cin >> d;
    d *= 108;
    double ans;
    string s = to_string(d);
    int n = s.size();
    rep(i, n - 2){
        cout << s[i];
    }
    cout << "." << s[n - 2] << s[n - 1] << endl;
    return 0;
}