1489 - 特殊乘法
写个算法,对2个小于1000000000的输入,求结果。特殊乘法举例:123 * 45 = 1*4 +1*5 +2*4 +2*5 +3*4+3*5
Input
两个小于1000000000的数
Output
输入可能有多组数据,对于每一组数据,输出Input中的两个数按照题目要求的方法进行运算后得到的结果。
Examples
Input
24 65 42 66666 3 67
Output
66 180 39
Solution C
#include<stdio.h> #include<string.h> int maxsize=20; int calc(char a[], char b[]){ int lena, lenb, i, j, result; lena=strlen(a); lenb=strlen(b); result=0; for(i=0; i<lena; i++){ for(j=0; j<lenb; j++){ result+=(a[i]-'0')*(b[j]-'0'); } } return result; } int main(){ char a[maxsize], b[maxsize]; int result; while(scanf("%s%s", a, b)==2){ result=calc(a, b); printf("%d\n", result); } return 0; }
Solution C++
#include <stdio.h> int a,b; int run() { int i=0,j=0; while(a!=0) { i+=a%10; a/=10; } while(b!=0) { j+=b%10; b/=10; } printf("%d\n",i*j); } int main() { scanf("%d%d",&a,&b); while((a!=-9999999)||(b!=-4444444)) { run(); a=-9999999; b=-4444444; scanf("%d%d",&a,&b); } return 0; }