另类乘法
时间限制:3000 ms | 内存限制:65535 KB
难度:1
描述
Bessie is tired of multiplying pairs of numbers the usual way, so she invented her own style of multiplication. In her style, A*B is equal to the sum of all possible pairwise products between the digits of A and B. For example, the product 123*45 is equal to 1*4 + 1*5 + 2*4 + 2*5 + 3*4 + 3*5 = 54. Given two integers A and B (1 ≤ A, B ≤ 1,000,000,000), determine A*B in Bessie’s style of multiplication.
输入The first Line of the input is a positive integer T,indicates the number of the test cases;
In every case,the input is in one line,contains two positive interger A,B
输出For every case,output the multiplication in Bessie’s style.
样例输入:
1
123 45
样例输出:”
54
#include<stdio.h>
#include<string.h>
int main()
{
int n;
char a[100],b[100];
scanf("%d",&n);
while(n--)
{
int sum=0;
scanf("%s%s",&a,&b);
for(int i=0;i<strlen(a);i++)
{
for(int j=0;j<strlen(b);j++)
{
sum+=(a[i]-'0')*(b[j]-'0');
}
}
printf("%d\n",sum);
}
return 0;
}
C++代码实现:(引用)
#include<iostream>
#include<string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
//为字符串类重载乘法运算符
int operator*(const string& a, const string& b)
{
int sum = 0;
for (int i = 0; i < a.size(); i++)
for (int j = 0; j < b.size(); j++)
sum += (a[i] - 48)*(b[j] - 48);
return sum;
}
int main()
{
string a, b;
int group;
cin >> group;
while ((group--)>0)
{
cin >> a >> b;
cout << a*b << endl;
}
//system("pause");
return 0;
}