题目1075: 特殊乘法

来源:互联网 发布:手机自动开启数据连接 编辑:程序博客网 时间:2024/06/07 01:42

题目描述
写个算法,对2个小于1000000000的输入,求结果。特殊乘法举例:123 * 45 = 1*4 +1*5 +2*4 +2*5 +3*4+3*5
 

输入

 两个小于1000000000的数

 

输出

 输入可能有多组数据,对于每一组数据,输出Input中的两个数按照题目要求的方法进行运算后得到的结果。

 

样例输入
24 65
42 66666
3 67
 

样例输出
66
180
39
 

提示 [+]

*** 提示已隐藏,点击上方 [+] 可显示 ***

 

来源

2010年清华大学计算机研究生机试真题

 


/*********************************  *    日期:2013-3-18 *    作者:SJF0115  *    题号: 天勤 题目1075: 特殊乘法 *    来源:http://acmclub.com/problem.php?id=1075 *    结果:AC  *    来源:2010年清华大学计算机研究生机试真题 *    总结: **********************************/#include<stdio.h>#include<string.h>int main(){int i,j,len1,len2,sum;char str1[11],str2[11];//freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin); while(scanf("%s %s",str1,str2) != EOF){sum = 0;len1 = strlen(str1);len2 = strlen(str2);for(i = 0;i < len1;i++){for(j = 0;j < len2;j++){sum += (str1[i] - '0') * (str2[j] - '0');}}printf("%d\n",sum);}    return 0;}




#include <iostream>using namespace std;int main(){int m, n, i, j;int a[9], b[9];int al, bl;while( cin >> m >> n ){for( i=0; m!=0; i++ ){a[i] = m % 10;m /= 10;}al = i;for( j=0; n!=0; j++ ){b[j] = n % 10;n /= 10;}bl = j;int num = 0;for( i=0; i<al; i++ )for( j=0; j<bl; j++ )num += a[i]*b[j];cout << num << endl;}return 0;}