#include <iostream> #include <string.h> #include<vector> #include<stdlib.h> using namespace std;
void multiply(const char *a,const char *b);
int main() {
string num1,num2; // string存储大数 cout<<"输入两个数字形式大数: "<<endl; cin>>num1>>num2; const char *p1=num1.c_str(); // 将string转为 const char * const char *p2=num2.c_str(); // 将string转为 const char * multiply(p1,p2);
return 0; }
void multiply(const char *a,const char *b) { int n1,n2; n1=strlen(a); n2=strlen(b); vector<int> s; for (int i=0;i<n1+n2;i++) s.push_back(0); // 每个元素赋初值0 for (int i=0;i<n1;i++) for (int j=0;j<n2;j++) s[i+j+1]+=(a[i]-'0')*(b[j]-'0'); for (int i=n1+n2-1;i>=0;i--) // 进位 if (s[i]>=10) { s[i-1]+=s[i]/10; s[i]%=10; } int i=0; while(s[i]==0) i++; // 跳过头部0元素 for (;i<n1+n2;i++) cout<<s[i]; cout<<'\0'<<endl; }
