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;
}
posted @ 2022-01-05 16:27  Moliay  阅读(16)  评论(0编辑  收藏  举报