結果
問題 | No.1464 Number Conversion |
ユーザー | 鈴木ひでき |
提出日時 | 2021-04-02 21:48:22 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,236 bytes |
コンパイル時間 | 1,091 ms |
コンパイル使用メモリ | 91,852 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-23 19:01:15 |
合計ジャッジ時間 | 1,675 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 29 |
ソースコード
#include <algorithm> #include <cmath> #include <deque> #include <iomanip> #include <iostream> #include <map> #include <math.h> #include <queue> #include <set> #include <stack> #include <stdio.h> #include <string> #include <vector> using namespace std; typedef long long ll; #define rep(i, init, end) for(ll i = init; i < end; i++) #define REP(i, init, end) for(ll i = init; i < end + 1; i++) #define rev(i, end, init) for(ll i = init - 1; i >= end; i--) #define REV(i, end, init) for(ll i = init; i >= end; i--) #define PI 3.14159265359 #define EPS 0.0000000001 // #define MOD 1000000007 //cout << std::fixed << std::setprecision(15) << y << endl; ll gcd(ll a, ll b){ return b != 0 ? gcd(b, a % b) : a; } int main(){ string Xstr; cin >> Xstr; ll X = 0; ll denom = 1; bool foundPoint = false; rep(i, 0, Xstr.size()){ if(Xstr[i] == '.'){ foundPoint = true; continue; } if(!foundPoint){ X *= 10; X += Xstr[i] - '0'; }else{ X *= 10; X += Xstr[i] - '0'; denom *= 10; } } ll divider = gcd(X, denom); cout << X / divider << "/" << denom / divider << endl; return 0; }