社区讨论

大佬们,麻烦帮我改改可以吗,谢谢

P1009[NOIP 1998 普及组] 阶乘之和参与者 2已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@louz0h3i
此快照首次捕获于
2023/11/12 12:23
2 年前
此快照最后确认于
2023/11/12 14:45
2 年前
查看原帖
CPP
#include<iostream>
using namespace std;

int main()
{
    // 声明变量和数组
    unsigned int i, a[105] = {1}, b[105] = {1}, n, j;
    
    // 输入一个整数
    cin >> n;

    // 计算阶乘
    for (i = 2; i <= n; i++)
    {
        // 乘以当前的 i
        for (j = 0; j < 100; j++)
        {
            b[j] *= i;
        }

        // 处理进位
        for (j = 0; j < 100; j++) 
        {
            a[j] += b[j];
            
            // 如果超过9,则进位到下一位
            if (a[j] > 9) 
            {
                a[j + 1] += a[j] / 10;
                a[j] %= 10;
            }
        }
    }

    // 寻找最高有效位的位置
    for (i = 100; i >= 0 && a[i] == 0; i--);

    // 输出结果
    for (j = i; j >= 0; j--)
    {
        cout << a[j];
    }

    return 0;
}

回复

3 条回复,欢迎继续交流。

正在加载回复...