大数相乘

来源:互联网 发布:软件设计师考试教程 编辑:程序博客网 时间:2024/06/08 20:01
#include<iostream>#include<string.h>using namespace std;void BigMultiplt(const char *num1, const char *num2){int len1=strlen(num1);int len2=strlen(num2);int *result=new int[len1+len2];memset(result,0,len1+len2+1);//相乘for(int i=0; i<len1; i++){for(int j=0; j<len2; j++){result[i+j+1]=(num1[i]-'0')*(num2[j]-'0');}} //处理进位for(int i=(len1+len2-1);i>=1; i--){result[i-1]+=result[i]/10;result[i]=result[i]%10;} //输出结果:如果前面有0,先去掉int i=0;while(!result[i]) i++;for(int j=i; j<(len1+len2); j++)cout<<result[j];cout<<endl;}int main(){string str1,str2;cin>>str1>>str2;const char *num1=str1.c_str();const char *num2=str2.c_str();BigMultiplt(num1,num2);return 0;}

0 0
原创粉丝点击