不知道哪里错了,大佬求助
查看原帖
不知道哪里错了,大佬求助
379158
YSHK132456789楼主2021/3/26 20:26
#include<bits/stdc++.h>
using namespace std;
const int len=128;
int main()
{
	int n=0;
	cin>>n;
	int ans[len]={};
	for(int i=n;i>=1;i--)
	{
		int num1[len]={};
		if(i>=10)
		{
			num1[len-1]=i%10;
			num1[len-2]=i/10;
		}
		else
		{
			num1[len-1]=i;
		}
		for(int j=i-1;j>=1;j--)
		{
			int flag=0;
			for(int k=len-1;k>=1;k--)
			{
				num1[k]=(num1[k]*j+flag)%10;
				flag=(num1[k]*j+flag)/10;
			}
		}
		/*
		cout<<endl<<endl;
		int l=0;
		while(num1[l]==0)
		{
			l++;
		}
		for(int i=l;i<=len-1;i++)
		{
			cout<<num1[i]<<" ";
		}
		cout<<endl;
		*/
		
		int f=0;
		for(int j=len-1;j>=1;j--)
		{
			ans[j]=(ans[j]+num1[j]+f)%10;
			f=(ans[j]+num1[j]+f)/10;
		}
	}
	int l=0;
	while(ans[l]==0)
	{
		l++;
	}
	for(int i=l;i<=len-1;i++)
	{
		cout<<ans[i];
	}
	return 0;
}
2021/3/26 20:26
加载中...