docs(B4050): 添加 GESP202409

This commit is contained in:
sairate 2025-06-07 12:07:15 +08:00
parent 70714e15d2
commit 0e4732edda
15 changed files with 132 additions and 0 deletions

View File

@ -0,0 +1,53 @@
## 1、求N的值 【问题描述】
用高精度方法求N的精确值(N以一般整数输入)。
【输入样例】ni.in
```in
10
```
【输出样例】ni.out
```out
3628800
```
```cpp
#include<iostream>
#include<string>
#include<vector>
using namespace std;
// 高精度字符串乘法res * num
string multiply(string res, int num) {
vector<int> temp;
int carry = 0;
for (int i = res.size() - 1; i >= 0; i--) {
int product = (res[i] - '0') * num + carry;
temp.push_back(product % 10);
carry = product / 10;
}
while (carry) {
temp.push_back(carry % 10);
carry /= 10;
}
// 把结果翻转回来
string result;
for (int i = temp.size() - 1; i >= 0; i--) {
result += temp[i] + '0';
}
return result;
}
int main() {
int n;
cin >> n;
string result = "1";
for (int i = 2; i <= n; i++) {
result = multiply(result, i);
}
reverse(result.begin(), result.end());
cout << result << endl;
return 0;
}
```

View File

@ -0,0 +1,33 @@
#include<iostream>
#include<cstring>
using namespace std;
int a[100000],n,i,y,xy[100000];
int main()
{
cin>>n;
a[0]=1;
a[1]=1;
for (y=1;y<=n;y++)
{
memset(xy,0,sizeof(xy));
xy[0]=a[0];
for (i=1;i<=a[0];i++)
{
xy[i]+=a[i]*y;
xy[i+1]=xy[i]/10;
xy[i]%=10;
}
while (xy[xy[0]+1]>0)
{
xy[xy[0]+2]=xy[xy[0]+1]/10;
xy[xy[0]+1]%=10;
xy[0]++;
}
for (i=1;i<=xy[0];i++) a[i]=xy[i];
a[0]=xy[0];
}
for (i=a[0];i>=1;i--) cout<<a[i];
cout<<endl;
return 0;
}

View File

@ -0,0 +1,34 @@
var
i,j,n,w : longint;
a : array[1..1000] of integer;
procedure fact(k : longint);
var
x,i : longint;
begin
x := 0;
for i := 1 to w do
begin
a[i] := a[i]*k+x;
x := a[i] div 10;
a[i] := a[i] mod 10;
end;
while x>0 DO
begin
w := w+1;
a[w] := x mod 10;
x := x div 10;
end;
end;
begin
assign(input,'ni.in'); reset(input);
assign(output,'ni.out'); rewrite(output);
a[1] := 1;
w := 1;
readln(n);
for i := 1 to n do fact(i);
for j := w downto 1 do write(a[j]);
writeln;
close(input); close(output);
end.

View File

@ -0,0 +1 @@
10

View File

@ -0,0 +1 @@
3628800

View File

@ -0,0 +1 @@
20

View File

@ -0,0 +1 @@
2432902008176640000

View File

@ -0,0 +1 @@
55

View File

@ -0,0 +1 @@
12696403353658275925965100847566516959580321051449436762275840000000000000

View File

@ -0,0 +1 @@
88

View File

@ -0,0 +1 @@
185482642257398439114796845645546284380220968949399346684421580986889562184028199319100141244804501828416633516851200000000000000000000

View File

@ -0,0 +1 @@
133

View File

@ -0,0 +1 @@
14872707060906857289084508911813048098675809251055070300508818286592035566485075754388082124671571841702793317081960037166525246368924700537538282948117301741317436012998958826217903503076596121600000000000000000000000000000000

View File

@ -0,0 +1 @@
345

View File

@ -0,0 +1 @@
24215638650792346558700053691985855570120556040258652734839783267039961720178323593174739047913617079695531502689473012213820889134885853992818438056445080201482863675240494802269823110125881000284687377104376400792200165127855908498047507347955446603093964326987087311394274684237308398502911304969719715098068025497504900730580217016573270011698467378924291550780873605154736879542602554635558428265690302091342359471863508627516511203478353542187151045838267239168928747525890559708487655213488727530884968558716385000436989129479527833010340517760688345368715729020015336862534353876914871201776699205878662858555857265544230999178449256448000000000000000000000000000000000000000000000000000000000000000000000000000000000000