为什么我测试结果是对的但全WA了
查看原帖
为什么我测试结果是对的但全WA了
1613440
lymyy楼主2025/1/18 00:18
#include<bits/stdc++.h>
using namespace std;
#define int long long
//思路是通过调用函数来求结果
int sum[100],num;
void f(int num)
{
	if(num==1)return;   //为1时结束
	for(int i=0;i<100;i++) sum[i]=sum[i]*num;   //sum的每一位乘上num
	for(int i=0;i<99;i++)   //进位
	{
		sum[i+1]+=sum[i]/10;
		sum[i]%=10;
	}
	f(num-1);   //sum乘下一位
}
signed main()
{
	sum[0]=1;   //sum初始化为1
	cin>>num;
	f(num);
	int k=0;   //计算无效0的个数
	for(int i=99;i>=0;i--)
	{
		if(sum[i]==0)k++;
		else break;
	}
	//反转sum的位数
	for(int i=0,j=99-k;i<j;i++,j--)swap(sum[i],sum[j]);
	//输出sum的值
	for(int i=0;i<100-k;i++)cout<<sum[i];
	return 0;
}

2025/1/18 00:18
加载中...