#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int arr[10000] = {0}, a, brr[10000] = {0};
while(cin >> a)
{
int count = 1, count1 = 1; ///count为阶乘数组位数,count1为结果数组位数;
memset(arr, 0, sizeof(arr));
memset(brr, 0, sizeof(brr));
arr[0] = 1;
for(int i = 1; i <= a; i++)
{
///阶乘
for(int j = 0; j < count; j++)
{
arr[j] *= i;
}
for(int j = 0; j < count; j++)
{
if(arr[j] >= 10)
{
arr[j + 1] += arr[j] / 10;
arr[j] %= 10;
}
}
while(arr[count])
{
arr[count + 1] += arr[count] / 10;
arr[count] %= 10;
P1009 [NOIP1998 普及组] 阶乘之和
最新推荐文章于 2024-02-25 12:13:08 发布
本文介绍如何使用C++编程解决NOIP1998普及组中关于计算阶乘之和的问题,详细阐述了算法思路和代码实现。
摘要由CSDN通过智能技术生成