求改代码
  • 板块学术版
  • 楼主lzm13933871057
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/2/4 20:24
  • 上次更新2025/2/5 10:04:30
查看原帖
求改代码
1499401
lzm13933871057楼主2025/2/4 20:24
#include<bits/stdc++.h>
#define maxn 100
using namespace std;
struct bigint{
	int len,a[maxn];
	bigint(int x=0){
		memset(a,0,sizeof(0));
		for(len=1;x;len++)
		    a[len]=x%10,x/=10;
		len--;
	}
	int &operator[](int i){
		return a[i];
	}
	void flatten(int L){
		len=L;
		for(int i=1;i<=len;i++)
		    a[i+1]+=a[i]/10,a[i]%=10;
		for( ;!a[len];)
		    len--;
	}
	void print(){
		for(int i=max(len,1);i>=1;i--)
		    printf("%d",a[i]);
	}
};
bigint operator+(bigint a,int b){
	bigint c;
	int len=a.len;
	for(int i=1;i<=len;i++)
	    c[i]=a[i]*b;
	c.flatten(len+11);
	return c;
}
int main(){
	bigint ans(0),fac(1);
	int m;
	cin>>m;
	for(int i=1;i<=m;i++){
		fac*=i;
		ans=ans+fac;
	}
	ans.print();
	return 0;
}
2025/2/4 20:24
加载中...