Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
173597 C班-李梓韬 高精度阶乘 C++ 无测评数据 0 0 MS 0 KB 1037 2024-08-20 21:56:22

Tests(0/0):


#include <iostream> using namespace std; int main() { int n; cin >> n; // 读取输入的数字 n int digits[10000]; // 用于存储阶乘结果的每一位数字 int digitCount = 1; // 结果的位数 digits[0] = 1; // 初始化为 1 for (int i = 1; i <= n; i++) { // 从 1 到 n 进行循环 int carry = 0; // 进位 for (int j = 0; j < digitCount; j++) { // 遍历结果的每一位 int product = digits[j] * i + carry; // 计算当前位与 i 的乘积加上进位 digits[j] = product % 10; // 存储当前位的数字 carry = product / 10; // 计算新的进位 } while (carry > 0) { // 如果还有进位 digits[digitCount++] = carry % 10; // 存储进位的数字 carry /= 10; // 更新进位 } } cout << n << "!="; for (int i = digitCount - 1; i >= 0; i--) { // 输出结果 cout << digits[i]; } cout << endl; return 0; }