問題 C: 特殊乘法
阿新 • • 發佈:2021-01-09
技術標籤: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;
}