- 编程
高精度乘法的差距
- 2025-2-11 11:49:20 @
#1Python
a = int(input())
b = int(input())
ans = a * b
print(ans)
共计4行 #2c++
#include <bits/stdc++.h>
using namespace std;
int aa[10000],bb[10000],cc[10000];
int zh(int arr[],string &str){
for(int i=1;i<=str.size();++i){
arr[i]=str[str.size()-i]-'0';
}
return str.size();
}
int main() {
string a;
string b;
cin >> a;
cin >> b;
if(a=="0"||b=="0"){
cout<<0;
return 0;
}
int c=zh(aa,a);
int d=zh(bb,b);
for(int i=1;i<=c;i++){
for(int j=1;j<=d;j++){
cc[i+j-1]+=aa[i]*bb[j];
}
}
int l=c+d;
for(int i=1;i<=l;i++){
if(cc[i]>=10){
cc[i+1]+=cc[i]/10;
cc[i]%=10;
}
}
if(cc[l] == 0){
l--;
}
for(int i=l;i>=1;i--){
cout<<cc[i];
}
return 0;
}
共计42行 这就是巨大的差距
4 条评论
-
wangkezhen1 LV 6 @ 2025-4-29 18:31:27已修改
我只用2行 #include <bits/stdc++.h>
using namespace std;int aa[10000],bb[10000],cc[10000];int zh(int arr[],string &str){for(int i=1;i<=str.size();++i){arr[i]=str[str.size()-i]-'0';}return str.size();}int main() {string a;string b;cin >> a;cin >> b;if(a=="0"||b=="0"){cout<<0;return 0;}int c=zh(aa,a);int d=zh(bb,b);for(int i=1;i<=c;i++){for(int j=1;j<=d;j++){cc[i+j-1]+=aa[i]*bb[j];}}int l=c+d;for(int i=1;i<=l;i++){if(cc[i]>=10){cc[i+1]+=cc[i]/10;cc[i]%=10;}}if(cc[l] == 0){l--;}for(int i=l;i>=1;i--){cout<<cc[i];}return 0;}
-
2025-2-12 11:12:04@
python它本来就是把实现各个功能的函数已经封装好,而c++则更依靠操作者的代码编写能力,因此两个没有可比性
👍 3😄 3❤️ 3🕊️ 1🍋 1🤣 1🌿 1👀 1 -
2025-2-12 11:06:09@
我只要18行
👍 4 -
2025-2-11 20:52:44@
数据不对,是因为数据2有空行
👍 3
- 1