codeup之特殊乘法
Description
写个算法,对2个小于1000000000的输入,求结果。特殊乘法举例:123 * 45 = 14 +15 +24 +25 +34+35
Input
两个小于1000000000的数
Output
输入可能有多组数据,对于每一组数据,输出Input中的两个数按照题目要求的方法进行运算后得到的结果。
Sample Input Copy
24 65
42 66666
3 67
Sample Output Copy
66
180
39
solution(取出每位
#include <stdio.h>
int getNum(int a, int a1[]){
int i = 0;
while(a){
a1[i++] = a % 10;
a /= 10;
}
return i;
}
int main(){
int a, b, a1[10], b1[10], mul, temp;
while(scanf("%d%d", &a, &b) != EOF){
mul = 0;
int n1 = getNum(a, a1), n2 = getNum(b, b1);
for(int i = 0; i < n1; i++){
for(int j = 0; j < n2; j++){
mul += a1[i] * b1[j];
}
}
printf("%d\n", mul);
}
return 0;
}
solution(把输入作为字符串处理
#include <stdio.h>
int getNum(int a, int a1[]){
int i = 0;
while(a){
a1[i++] = a % 10;
a /= 10;
}
return i;
}
int main(){
int a, b, a1[10], b1[10], mul, temp;
while(scanf("%d%d", &a, &b) != EOF){
mul = 0;
int n1 = getNum(a, a1), n2 = getNum(b, b1);
for(int i = 0; i < n1; i++){
for(int j = 0; j < n2; j++){
mul += a1[i] * b1[j];
}
}
printf("%d\n", mul);
}
return 0;
}