結果
| 問題 |
No.1464 Number Conversion
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2021-04-02 22:01:03 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 3 ms / 2,000 ms |
| コード長 | 1,524 bytes |
| コンパイル時間 | 3,969 ms |
| コンパイル使用メモリ | 249,552 KB |
| 最終ジャッジ日時 | 2025-01-20 09:16:16 |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 29 |
ソースコード
#include <bits/stdc++.h>
#include <atcoder/all>
typedef unsigned long long ULLONG;
typedef long long LLONG;
static const LLONG MOD_NUM = 1000000007LL; //998244353LL;
static const LLONG INF_NUM = LLONG_MAX;
template<class _T> static void get(_T& a) {
std::cin >> a;
}
template<class _T> static void get(_T& a, _T& b) {
std::cin >> a >> b;
}
template<class _T> static void get(_T& a, _T& b, _T& c) {
std::cin >> a >> b >> c;
}
template <class _T> static _T tp_abs(_T a) {
if (a < (_T)0) {
a *= (_T)-1;
}
return a;
}
template <class _T> static _T tp_pow(int x, int exp)
{
_T ans = 1;
_T base = x;
while (exp > 0) {
if (exp & 1) {
ans = (ans * base);
}
base = (base * base);
exp >>= 1;
}
return ans;
}
template <class _T> static _T tp_gcd(_T first, _T second)
{
_T num1 = first, num2 = second;
_T remainder = 0, common = 0;
if (!num1) return num2;
if (!num2) return num1;
while (!common) {
remainder = num1 % num2;
if (remainder == 0) {
common = num2;
}
else {
num1 = num2;
num2 = remainder;
}
}
return(common);
}
template <class _T> static _T tp_lcm(_T first, _T second) {
_T gcd = tp_gcd<_T>(first, second);
return first * second / gcd;
}
static void task();
int main()
{
task();
fflush(stdout);
return 0;
}
static void task()
{
long double X;
get(X);
LLONG targ = X * (long double)1000000000.0;
LLONG mul = 1000000000LL;
LLONG gcd = 0;
while ((gcd = tp_gcd<LLONG>(targ, mul)) != 1LL) {
targ /= gcd;
mul /= gcd;
}
printf("%lld/%lld\n", targ, mul);
}