結果
問題 | No.502 階乗を計算するだけ |
ユーザー |
![]() |
提出日時 | 2017-04-07 23:12:34 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 515 ms / 1,000 ms |
コード長 | 729 bytes |
コンパイル時間 | 120 ms |
コンパイル使用メモリ | 23,424 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-07-16 02:58:22 |
合計ジャッジ時間 | 4,620 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 52 |
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:5:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 5 | scanf("%lld",&N); | ~~~~~^~~~~~~~~~~
ソースコード
#include<stdio.h>long long int itiok=100000000;int main(void){long long int i=1,N,ans=1,gen=0,ok=0;scanf("%lld",&N);if(N<10*itiok+7){if(N>itiok){i+=itiok;ans=927880474;}if(N>2*itiok){i+=itiok;ans=933245637;}if(N>3*itiok){i+=itiok;ans=668123525;}if(N>4*itiok){i+=itiok;ans=429277690;}if(N>5*itiok){i+=itiok;ans=733333339;}if(N>6*itiok){i+=itiok;ans=724464507;}if(N>7*itiok){i+=itiok;ans=957939114;}if(N>8*itiok){i+=itiok;ans=203191898;}if(N>9*itiok){i+=itiok;ans=586445753;}for(;i<=N;i++){ans*=i;ans%=1000000007;}printf("%lld\n",ans);} else{printf("0\n");}return 0;}