求C++解决代码,一直都是PA……
PA代码:
#include <iostream>
using namespace std;
int main() {
long long n;
cin >> n;
if (n == 0 || n == 1) {
cout << "1" << endl;
return 0;
}
// 计算因子2和5的总数
long long two_count = 0;
for (long long i = 2; i <= n; i *= 2)
two_count += n / i;
long long five_count = 0;
for (long long i = 5; i <= n; i *= 5)
five_count += n / i;
int extra = two_count - five_count;
// 处理余下部分
long long remainder = n % 20;
long long start = (remainder == 0) ? (n - 19) : (n - remainder + 1);
int product = 1;
for (long long i = start; i <= n; ++i) {
long long num = i;
while (num % 2 == 0) num /= 2;
while (num % 5 == 0) num /= 5;
product = (product * (num % 10)) % 10;
}
// 处理多余的2的幂次
int mod2[4] = {6, 2, 4, 8};
if (extra > 0) {
product = (product * mod2[extra % 4]) % 10;
}
cout << product << endl;
return 0;
}