写个算法,对2个小于1000000000的输入,求结果。特殊乘法举例:123 * 45 = 1*4 +1*5 +2*4 +2*5 +3*4+3*5
#include <iostream>
#include <stdio.h>
using namespace std;
int main(){
long a,b,c,d;
while(scanf("%ld%ld",&a,&b)!=EOF){
int t=0,s=0;
c=a;
d=b;
while(a/10!=0){
++t;
a=a/10;
}
t++;
a=c;
while(b/10!=0){
s++;
b=b/10;
}
s++;
b=d;
int m[t],n[s];
for(int i=0;i<=t-2;i++){
m[i]=a%10;
a=(a-m[i])/10;
}
m[t-1]=a;
for(int j=0;j<=s-2;j++){
n[j]=b%10;
b=(b-b%10)/10;
}
n[s-1]=b;
long sum=0;
int temp=s;
for(int i=0;t>0;i++){
for(int j=0;s>0;j++){
sum+=m[i]*n[j];
s--;
}
s=temp;
t--;
}
cout<<sum<<endl;
}
return 0;
}