結果
問題 | No.500 階乗電卓 |
ユーザー |
![]() |
提出日時 | 2017-05-17 03:23:24 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 138 ms / 2,000 ms |
コード長 | 800 bytes |
コンパイル時間 | 3,454 ms |
コンパイル使用メモリ | 77,772 KB |
実行使用メモリ | 41,588 KB |
最終ジャッジ日時 | 2024-06-25 03:01:38 |
合計ジャッジ時間 | 7,528 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 20 |
ソースコード
import java.util.Scanner;public class No500 {public static void main(String[] args){long N=0;Scanner sc = new Scanner(System.in);N = sc.nextLong();culc(N);}static void culc(long N){long mod = (long) Math.pow(10, 12); //1,000,000,000,000boolean moreThan12Digits = false;long ans=1;for(int i=2; i<=N; i++){ans *= i;if(moreThan12Digits && ans == 0)break; //下12桁が全て0になったら終了if(ans >= mod){ans %= mod;moreThan12Digits = true;}}if(moreThan12Digits){System.out.printf("%012d\n", ans);}else{System.out.println(ans);}}}