题目1083:特殊乘法
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:5388
解决:3652
题目描述:
写个算法,对2个小于1000000000的输入,求结果。
特殊乘法举例:123 * 45 = 1*4 +1*5 +2*4 +2*5 +3*4+3*5
输入:
两个小于1000000000的数
输出:
输入可能有多组数据,对于每一组数据,输出Input中的两个数按照题目要求的方法进行运算后得到的结果。
样例输入:
123 45
样例输出:
54
来源:
代码1:
#include <stdio.h>
int main(){
int a,b;
while(scanf("%d%d",&a,&b)!=EOF){
int buf1[20],buf2[20],size1=0,size2=0;
while(a!=0){
buf1[size1++]=a%10;
a/=10;
}
while(b!=0){
buf2[size2++]=b%10;
b/=10;
}
int i;
int ans=0;
for(i=0;i<size1;i++){
int j;
for(j=0;j<size2;j++){
ans+=buf1[i]*buf2[j];
}
}
printf("%d\n",ans);
}
return 0;
}
代码2:
#include <stdio.h>
int main(){
char a[11],b[11];
while(scanf("%s%s",a,b)!=EOF){
int ans=0;
int i;
for(i=0;a[i]!=0;i++){
int j;
for(j=0;b[j]!=0;j++){
ans+=(a[i]-'0')*(b[j]-'0');
}
}
printf("%d\n",ans);
}
return 0;
}