1. 程式人生 > 其它 >問題 C: 特殊乘法

問題 C: 特殊乘法

技術標籤:Codeup新家

#include<cstdio>
#include<cstring>
int main(){
	char a[20], b[20];
	int sum = 0;
	int i = 0;
	int j = 0;
	int temp = 0;
	while(scanf("%s %s", a, b) != EOF){
		for(i = 0; i < strlen(a); i++){
			for(j = 0; j < strlen(b); j++){
				temp = (a[i]-'0') * (b[j]-'0');
				sum +
= temp; } } printf("%d\n", sum); sum = 0; } return 0; }

麻煩寫法

#include<cstdio>
#include<cstring>
void split(char *str, int *ileft, int *iright);
void transition(char *str, int *num);
int getResult(char *str);
int main(){
	char str[1000];
	while(gets(str) != NULL){
		printf
("%d\n", getResult(str)); } return 0; } void split(char *str, int *ileft, int *iright){ char cleft[1000], cright[1000]; sscanf(str, "%s %s", cleft, cright); transition(cleft, ileft); transition(cright, iright); } void transition(char *str, int *num){ int len = strlen(str); int tempnum =
0; int temp = 0; sscanf(str, "%d", &tempnum); int i = 0; num[0] = len; for(i = 1; i <= len; i++){ temp = tempnum % 10; num[i] = temp; tempnum /= 10; } } int getResult(char *str){ int left[1000] = {0}; int right[1000] = {0}; split(str, left, right); int i = 0; int j = 0; int sum = 0; for(i = 1; i <= left[0]; i++){ for(j = 1; j <= right[0]; j++){ sum += left[i] * right[j]; } } return sum; }