题目描述
写个算法,对2个小于1000000000的输入,求结果。特殊乘法举例:123 * 45 = 1*4 +1*5 +2*4 +2*5 +3*4+3*5
输入
两个小于1000000000的数
输出
输入可能有多组数据,对于每一组数据,输出Input中的两个数按照题目要求的方法进行运算后得到的结果。
样例输入 Copy
24 65
42 66666
3 67
样例输出 Copy
66
180
39
1. 题目大意
将两个长整数按照一定的规则运算,即两个数字之间各位相乘求和
2. 主要思路
要求各个位数,不妨用数组存储每一位,那么便想到用字符串代替长整数更加方便。让数组的每一位分别相乘再求和。注意将字符转换成数字
3. 完整代码
#include<iostream>
#include<string.h>
using namespace std;
int main(){
char str1[11],str2[11]; //题目要求10位数,但字符串多一个\0
while(cin>>str1>>str2){
int i,j;
int m=strlen(str1); //接收输入的位数
int n=strlen(str2);
int mul=0;
for(i=0;i<m;i++){
for(j=0;j<n;j++){
mul+=(str1[i]-'0')*(str2[j]-'0'); //字符转数字
}
}
cout<<mul<<endl;
}
return 0;
}