7 条题解
-
1
我来试试高精
解题思路: 采用数组倒序储存的方法,来进行模拟乘法运算,最后输出结果即可
#include<bits/stdc++.h> using namespace std; const int N = 1e6+10; char x[N] , y[N]; int a[N] , b[N] , c[N]; int main() { cin >> x >> y; a[0] = strlen(x); b[0] = strlen(y); for(int i = 1 ; i <= a[0] ; i++) { a[i] = x[a[0]-i]-'0';//倒序储存 } for(int i = 1 ; i <= b[0] ; i++) { b[i] = y[b[0]-i]-'0'; } for(int i = 1 ; i <= a[0] ; i++) { for(int j = 1 ; j <= b[0] ; j++) { c[i+j-1]+=a[i]*b[j]; } } int len = a[0]+b[0]; for(int i = 1 ; i <= len-1 ; i++) { if(c[i]>9) { c[i+1]+=c[i]/10; c[i]%=10; } } while(c[len] == 0&&len>1) len--; for(int i = len ; i >=1 ; i--) { printf("%d",c[i]); } return 0; }
- 1
信息
- ID
- 103
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- 递交数
- 323
- 已通过
- 184
- 上传者