結果
問題 |
No.81 すべて足すだけの簡単なお仕事です。
|
ユーザー |
|
提出日時 | 2018-09-16 16:50:01 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 156 ms / 5,000 ms |
コード長 | 1,729 bytes |
コンパイル時間 | 5,340 ms |
コンパイル使用メモリ | 80,472 KB |
実行使用メモリ | 41,896 KB |
最終ジャッジ日時 | 2024-07-22 16:43:01 |
合計ジャッジ時間 | 10,473 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 30 |
ソースコード
import java.util.Scanner; public class Main_yukicoder81 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); long decimal = 0; long intp = 0; for (int i = 0; i < n; i++) { String a = sc.next(); int index = a.indexOf('.'); if (index == -1) { intp += Long.parseLong(a); } else { long sign = 1; if (a.charAt(0) == '-') { sign = -1; } intp += Long.parseLong(a.substring(0, index)); String tmp = a.substring(index + 1); while (tmp.length() < 10) { tmp += "0"; } decimal += sign * Long.parseLong(tmp); } } intp += decimal / 10000000000L; decimal %= 10000000000L; if ((intp >= 0 && decimal >= 0)) { System.out.printf("%d.%010d\n", intp, decimal); } else if (intp < 0 && decimal < 0) { System.out.printf("%d.%010d\n", intp, Math.abs(decimal)); } else if (intp == 0 && decimal < 0) { System.out.printf("-%d.%010d\n", intp, Math.abs(decimal)); } else if (intp > 0 && decimal < 0) { intp--; decimal += 10000000000L; System.out.printf("%d.%010d\n", intp, decimal); } else if (intp < 0 && decimal > 0) { intp++; decimal = 10000000000L - decimal; if (intp == 0) { System.out.print('-'); } System.out.printf("%d.%010d\n", intp, decimal); } else if (intp < 0 && decimal == 0) { System.out.printf("%d.%010d\n", intp, decimal); } sc.close(); } }