乘法原理:第1个乘数i位与第2个乘数第j位的乘积,加至第i+j位
描述
输入两个整数a和b,编程计算相乘的结果。
输入描述
输入两行,第一行整数a,第二行整数b。(0<=a,b;1<=数位<=1000)
输出描述
输出一个整数,表示乘积。
样例输入
21560
25
样例输出
539000
代码实现
#include<bits/stdc++.h>
using namespace std;
int main(){
string str_a, str_b ; //输入的正整数
int a[2000]={},b[2000]={},c[2001]={}; //str_a转化至数组a ,str_b转化至数组b
cin >> str_a >> str_b;
int a_len = str_a.length();
for (int i = 0; i <a_len; i++)
{
a[a_len-1-i]=str_a[i]-'0';
}
int b_len = str_b.length();
for (int i = 0; i <b_len; i++)
{
b[b_len-1-i]=str_b[i]-'0';
}
for ( int i = 0; i <a_len ;i ++)
{
for( int j =0 ; j<b_len ;j++)
{
c[i+j]+=a[i]*b[j];
}
}
int len=a_len+b_len;
// 进位
int k = 0;
for (int i = 0; i < len; i++)
{
c[i] += k;
k = c[i] / 10;
c[i] %= 10;
}
while (len > 1 && c[len - 1] == 0)
--len;
for (int i = len - 1; i >= 0; i--)
cout << c[i];
cout << endl;
return 0;
}