当前位置:编程学习 > C/C++ >>

题目1075: 特殊乘法

题目描述
写个算法,对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年清华大学计算机研究生机试真题
 
 
 
 
 
 
 
[cpp] 
/*********************************  
 *    日期: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;  
}  
 
/********************************* 
 *    日期: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;
}
 
 
 
 
 
 
 
 
 
 
 
 
[cpp] 
#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;  
}  
 
#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;
}www.zzzyk.com
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;
}
 
补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,