結果
| 問題 |
No.219 巨大数の概算
|
| コンテスト | |
| ユーザー |
uafr_cs
|
| 提出日時 | 2015-08-31 04:04:07 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 565 ms / 1,500 ms |
| コード長 | 1,532 bytes |
| コンパイル時間 | 2,213 ms |
| コンパイル使用メモリ | 85,032 KB |
| 実行使用メモリ | 57,036 KB |
| 最終ジャッジ日時 | 2024-07-18 11:37:22 |
| 合計ジャッジ時間 | 30,309 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 51 |
ソースコード
import java.io.BufferedReader;
import java.io.Closeable;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Arrays;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.NoSuchElementException;
import java.util.Scanner;
import java.util.Set;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException{
Scanner sc = new Scanner(System.in);
final int N = (int)(sc.nextLong());
for(int tt = 0; tt < N; tt++){
final long A = sc.nextLong();
final long B = sc.nextLong();
final double upper = B * Math.log10(A);
double diff = Double.MAX_VALUE;
long min_diff_X = 0, min_diff_Y = 0, min_diff_Z = 0;
for(int X = 1; X < 10; X++){
for(int Y = 0; Y < 10; Y++){
final double lower = Math.log10(10 * X + Y);
final long Z = (long)(upper - lower);
final double restore_upper = Z + lower;
//System.out.println(upper + " " + Z + " " + restore_upper);
if(diff > Math.abs(upper - restore_upper)){
//System.out.println(upper + " " + restore_upper);
//System.out.println(X + " " + Y + " " + Z + " " + (upper - restore_upper));
diff = Math.abs(upper - restore_upper);
min_diff_X = X;
min_diff_Y = Y;
min_diff_Z = Z;
}
}
}
System.out.println(min_diff_X + " " + min_diff_Y + " " + (min_diff_Z + 1));
}
}
}
uafr_cs