#include<iostream>
#include<math.h>
using namespace std;
int num(int u) //计算乘数的位数
{
int i,num;
i=1;
num=u/10;
while(num!=0)
{
u=num;
num=u/10;
i=i+1;
}
// cout<<i<<endl;
return i;
}
void MUL(int u,int i,int &w,int &x)//将乘数分治
{
w=u/(pow(10,i/2));
x=u-w*pow(10,i/2);
// cout<<w<<” “<<x<<endl;
}
int main(int argc, char* argv[])
{
int multi,multi1;//定义两个乘数
int number,number1,w,x,y,z,product,product1,product2,product3;
cout<<“请输入乘数与被乘数,注意位数必须相同”<<endl;
cin>>multi>>multi1;
number=num(multi);//计算位数
number1=num(multi1);
MUL(multi,number,w,x);//将乘数分治
MUL(multi1,number1,y,z);
if(number%2!=0)//如果乘数位数是奇数
{
product=w*y*pow(10,number-1);
product1=((w+x)*(y+z)-w*y-x*z)*pow(10,number/2);
product2=x*z;
product3=product+product1+product2;
// cout<<product<<” “<<product1<<” “<<product2<<endl;
cout<<product3<<endl;
}
else//如果乘数位数是偶数
{
product=w*y*pow(10,number);
product1=((w+x)*(y+z)-w*y-x*z)*pow(10,number/2);
product2=x*z;
product3=product+product1+product2;
// cout<<product<<” “<<product1<<” “<<product2<<endl;
cout<<product3<<endl;
}
return 0;
}