社区讨论
代码是不是有bug
灌水区参与者 11已保存回复 24
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 24 条
- 当前快照
- 1 份
- 快照标识符
- @mi7ycyej
- 此快照首次捕获于
- 2025/11/21 05:37 4 个月前
- 此快照最后确认于
- 2025/11/21 06:51 4 个月前
RT。
为什么我的高精代码测试的时候自动吃回车。
很懵B。望有大佬可以解释一下->
CPP
很懵B。望有大佬可以解释一下->#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
int n,a[201],b[201],s[201];
string ans;
string cheng(string s1,string s2)
{
string str;
memset(s,0,sizeof s);
memset(a,0,sizeof a);
memset(b,0,sizeof b);
int len1,len2,len,x = 0;
len1 = s1.length();
len2 = s2.length();
for(int i = 0 ; i < len1 ; ++ i)
a[len1 - i] = s1[i] - '0' ;
for(int i = 0 ; i < len2 ; ++ i)
b[len2 - i] = s2[i] - '0' ;
len = len1 + len2;
for(int i = 1 ; i <= len1 ; ++ i) {
x = 0;
for(int j = 1 ; j <= len2 ; ++ j) {
s[i + j - 1] = a[i] * b[j] + x +s[i + j - 1];
x = s[i + j - 1] / 10 ;
s[i + j - 1] %= 10 ;
}
s[i + len2] = x ;
}
while(s[len] == 0 && len > 1)
len -- ;
for(int i = 1 ; i <= len ; ++ i){
str = char(s[i] + '0') + str;
}
return str ;
}
string f(int v)
{
if(v == 0)
return "1";
int t,k,len1,len2;
string str;
str = "1" ;
for(int i = 2 ; i <= v ; ++ i) {
string s;
k = i ;
while(k) {
t = k % 10 ;
s = char(t + '0') + s;
k /= 10 ;
}
str = cheng(str,s);
}
return str;
}
string jia(string s1,string s2)
{
int len1,len2,x,y,z,t,len;
string str;
len1 = s1.length();
len2 = s2.length();
if(len1 < len2)
for(int i = 1 ; i <= len2 - len1 ; ++ i)
s1 = "0" + s1 ;
else
for(int i = 1 ; i <= len1 - len2 ; ++ i)
s2 = "0" + s2 ;
t = 0 ;
len = s1.length();
for(int i = len - 1 ; i >= 0 ; -- i) {
x = s1[i] - '0' ;
y = s2[i] - '0' ;
z = x + y + t;
t = z / 10 ;
z %= 10 ;
str = char(z + '0') + str ;
}
if(t != 0)
str = char(t + '0') + str ;
return str ;
}
int main()
{
// freopen("a.in","r",stdin);
// freopen("a.out","w",stdout);
int x ;
ans = "0" ;
cin>>n;
for(int i = 1 ; i <= n ; ++ i) {
cin >> x;
ans = jia(f(x),ans);
}
cout << ans ;
return 0;
}
回复
共 24 条回复,欢迎继续交流。
正在加载回复...