結果
問題 | No.500 階乗電卓 |
ユーザー |
![]() |
提出日時 | 2019-01-22 22:17:17 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 892 bytes |
コンパイル時間 | 1,350 ms |
コンパイル使用メモリ | 162,200 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-09-16 04:19:22 |
合計ジャッジ時間 | 2,061 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 20 |
ソースコード
#include <bits/stdc++.h>using namespace std;#define rep(i,n) for(int i=0;i<(int)(n);i++)#define repi(i,a,b) for(int i=int(a);i<(int)(b);i++)#define all(x) (x).begin(),(x).end()#define foreach(u,v) for(auto (u) : (v))#define pb push_back#define mp make_pair#define mt make_tupletypedef long long ll;typedef pair<int, int> pii;typedef vector<int> vi;typedef vector<vi> vvi;typedef pair<ll, ll> pll;typedef vector<ll> vl;const int inf = 1e9;const ll linf = 1e18;const ll mod = 1e9 + 7;const double eps = 1e-9;int main(){ll n;cin >> n;if(n >= 50){rep(i, 12) cout << 0;cout << endl;}else{ll s = 1;string ans;repi(i, 1, n+1){s *= i;ans = to_string(s);s %= (ll)(1e12);}if(ans.size() > 12){cout << ans.substr(ans.size()-12, 12) << endl;}else{cout << ans << endl;}}return 0;}