1 条题解
-
0
C :
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<ctype.h> #include<math.h> char s1[1001],s2[1001]; int a[240],b[240],c[10001]; int main(){ scanf("%s %s",&s1,&s2); if(strcmp(s1,"0")==0 || strcmp(s2,"0")==0) { printf("%d",0); return 0; } int i,j; for(i = 0;i <strlen(s1);i++){ a[i] = s1[strlen(s1) - i - 1] - '0'; } for(i = 0;i < strlen(s2);i++){ b[i] = s2[strlen(s2) - i - 1] - '0'; } //循环a数组的每一位,用a[i]去乘以b数组的每一位b[j] //结果错位加到c数组的c[i+j]这一位上 for(i = 0;i < strlen(s1);i++){ for(j = 0;j < strlen(s2);j++){ c[i+j] = c[i+j] + a[i] * b[j]; c[i+j+1] = c[i+j+1] + c[i+j] / 10; c[i+j] = c[i+j] % 10; } } int p = 0; //逆序输出,逆序从第一个非0元素位置开始输出 for(i = strlen(s1) + strlen(s2) - 1;i >= 0;i--){ if(c[i] != 0){ p = i; break; } } for(i = p;i >= 0;i--){ printf("%d",c[i]); } return 0; }
Python :
a,b=int(input()),int(input()) print(a*b)
- 1
信息
- ID
- 2208
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者