_buzhidao_ @ 2023-04-10 21:45:59
#include<bits/stdc++.h>
using namespace std;
short a1[1000],b1[1000],c[1000],lea,leb,lec=1;
string f,g;
void chushihua(string a,string b){
lea=a.size();
leb=b.size();
for(int i=0;i<1000;i++){
a1[i]=0;
}
for(int i=0;i<1000;i++){
b1[i]=0;
}
for(int i=1;i<=lea;i++){
a1[i]=a[lea-i]-48;
}
for(int i=1;i<=leb;i++){
b1[i]=b[leb-i]-48;
}
for(int i=0;i<1000;i++){
c[i]=0;
}
}
string jia(string a,string b){
chushihua(a,b);
lec=1;
int x=0;
while(lec<=lea||lec<=leb){
c[lec]=a1[lec]+b1[lec]+x;
x=c[lec]/10;
c[lec]%=10;
lec++;
}
c[lec]=x;
while(c[lec]==0&&lec>1){
lec--;
}
string ss="",s1=" ";
for(int i=lec;i>0;i--){
s1[0]=c[i]+48;
ss.append(s1);
}
return ss;
}
string cheng(string a,string b){
chushihua(a,b);
int x;
for(int i=1;i<=lea;i++){
x=0;
for(int j=1;j<=leb;j++){
c[i+j-1]=a1[i]*b1[j]+x+c[i+j-1];
x=c[i+j-1]/10;
c[i+j-1]%=10;
}
c[i+leb]=x;
}
lec=lea+leb;
while(c[lec]==0&&lec>1){
lec--;
}
string z="",y=" ";
for(int i=lec;i>=1;i--){
y[0]=c[i]+48;
z.append(y);
}
return z;
}
string int_str(int a){
int b=a;string s="",ss=" ";
while(b!=0){
ss[0]=b%10+48;
s.append(ss);
b/=10;
}
return s;
}
short n;string sk,t="0";
int main(){
cin>>n;
for(int i=1;i<=n;i++){
sk="1";
for(int j=1;j<=i;j++){
sk=cheng(int_str(j),sk);
//cout<<sk<<' ';//
}
//cout<<sk<<endl;//
t=jia(t,sk);
//cout<<t<<endl;//
}
cout<<t;
return 0;
}
第一次尝试高精度,一定是代码的问题
by xxc123 @ 2023-04-10 22:09:49
@buzhidao 高精度简单点吧!!! 求关注
#include<iostream>
using namespace std;
int a[1001],b[1001];
void add()
{
int t=0;
for(int i=1000;i>=1;i--)
{
b[i]=b[i]+a[i]+t;
t=b[i]/10;
b[i]%=10;
}
}
void multiplication(int x)
{
int t=0;
for(int i=1000;i>=1;i--)
{
a[i]=a[i]*x+t;
t=a[i]/10;
a[i]%=10;
}
}
void print()
{
int flag=0;
for(int i=1;i<=1000;i++)
{
if(b[i]!=0) flag=1;
if(flag) cout<<b[i];
}
}
int main()
{
a[1000]=b[1000]=1;
int n;
cin>>n;
for(int i=2;i<=n;i++)
{
multiplication(i);
add();
}
print();
return 0;
}
从末尾算,a是阶乘积,s是和
by _buzhidao_ @ 2023-04-11 20:48:23
@xxc123 你也是5年级!已关注
好了我试试
《忌:继续完成WA的题 然而变成了TLE》
using namespace qwq;
by _buzhidao_ @ 2023-04-11 21:19:39
@xxc123 你的加法好像没有进位
by xxc123 @ 2023-04-11 21:39:25
@buzhidao 我是通过的呀。 都跟竖式一样,从后往前 t是进位的
by xxc123 @ 2023-04-11 21:40:37
@buzhidao 你是自己学的吗 还是实验舱 我是我爸教我的
by _buzhidao_ @ 2023-04-12 21:13:21
@xxc123 你的有进位
我是看书写的,稍微改动,所以3WA