水着 / paizaOnlineHackathon7
#include <iostream> using namespace std; #define MOD 1000000000 void Solve(int n) { long long answer = 1; for (int i=n; i>0; --i) { answer *= i; while (answer%10 == 0) answer /= 10; if (answer > MOD) answer %= MOD*(long long)10; } cout << answer%MOD << endl; } int main(void) { int n; cin >> n; Solve(n); return 0; }
後ろから階乗を求め、後ろの0を削除と前の0を削除して結果を出力。
〜了〜