結果
| 問題 |
No.1464 Number Conversion
|
| コンテスト | |
| ユーザー |
bluemegane
|
| 提出日時 | 2021-04-17 11:33:41 |
| 言語 | C#(csc) (csc 3.9.0) |
| 結果 |
AC
|
| 実行時間 | 24 ms / 2,000 ms |
| コード長 | 951 bytes |
| コンパイル時間 | 2,498 ms |
| コンパイル使用メモリ | 112,188 KB |
| 実行使用メモリ | 26,280 KB |
| 最終ジャッジ日時 | 2024-07-03 18:21:38 |
| 合計ジャッジ時間 | 4,369 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 29 |
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc) Copyright (C) Microsoft Corporation. All rights reserved.
ソースコード
using static System.Math;
using System;
public class Hello
{
static void Main()
{
var s = Console.ReadLine().Trim();
var p = s.IndexOf('.');
if (p == -1) Console.WriteLine(s + "/1");
else getAns(s, p);
}
static void getAns(string s, int p)
{
var s2 = s.Replace(".", "");
var t1 = long.Parse(s2);
var t2 = (long)Pow(10, s.Length - (p + 1));
if (t1 % t2 == 0) { Console.WriteLine("{0}/1", t1 / t2); return; }
if (t2 % t1 == 0) { Console.WriteLine("1/{0}", t2 / t1); return; }
var imax = (int)Sqrt(Min(t1, t2)) + 1;
for (int i = 2; i <= imax; i++)
{
while (true)
{
if (t1 % i == 0 && t2 % i == 0)
{
t1 /= i;
t2 /= i;
}
else break;
}
}
Console.WriteLine("{0}/{1}", t1, t2);
}
}
bluemegane