C++ 高精度乘法
·
#include <bits/stdc++.h>
using namespace std;
//计算 123*123
int a[3]={3,2,1};//数组里反着存放,这样从下标0开始操作 方便
int b[3]={3,2,1};
int c[10]={0};//存储答案
int pr(){//输出C数组里数值
for(int i=0;i<10;i++){
cout<<c[i]<<" ";
}
cout<<endl;
}
int main() {
for(int i=0;i<3;i++){//a[i]
for(int j=0;j<3;j++){//b[j]
//高精度核心在这 思考: a[i]*b[j] 应该放到C的哪个位置,为什么是i+j位置?
c[i+j]+=a[i]*b[j];//+=
if(c[i+j]>=10){
c[i+j+1]+=c[i+j]/10;//+=
c[i+j]%=10;
}
pr();//输出计算过程
}
cout<<"-----"<<endl;
}
pr();
cout<<123*123<<endl;//验证答案
return 0;
}
更多推荐


所有评论(0)