高精度乘法

来源:互联网 发布:淘宝上宝贝怎么分类 编辑:程序博客网 时间:2024/06/05 06:38

大概思路:二重循环,每一位相乘,不过注意每一位的权是多少。

#include<iostream>#include<cstring>using namespace std;int main(){ios::sync_with_stdio(false);char a[200];char b[200];int a_1[200];int b_1[200];int c[200];cin>>a>>b;int len1=strlen(a);int len2=strlen(b);int len=len1>len2?len1:len2;int i,j;for(i=0,j=len1-1;i<len1;i++,j--)a_1[j]=a[i]-'0';for(i=0,j=len2-1;i<len2;i++,j--)b_1[j]=b[i]-'0';memset(c,0,sizeof(c));int k=0;for(i=0;i<len1;i++){k=i;//每一位的权for(j=0;j<len2;j++){c[k]+=a_1[i]*b_1[j];if(c[k]>=10){c[k+1]+=(c[k]/10);//模拟手算c[k]=c[k]%10;}k++;}}bool flag=true;for(int k=len+1;k>=0;k--){//去前导零if(c[k])flag=false;if(flag)continue;cout<<c[k];}cout<<endl;return 0;}


0 0
原创粉丝点击