2 条题解
-
0
#include<bits/stdc++.h> using namespace std; struct node { int a[511], len; node() { len=1; memset(a, 0, sizeof(a)); } }; node operator*(node n1, node n2) { node no; no.len = n1.len + n2.len - 1; for(int i=1; i<=n1.len; i++)for(int j=1; j<=n2.len; j++)no.a[i+j-1] += n1.a[i] * n2.a[j]; for(int i=1; i<=no.len; i++) { no.a[i+1] += no.a[i]/10; no.a[i] %= 10; } int i = no.len; while(no.a[i+1] > 0) { i++; no.a[i+1] += no.a[i]/10; no.a[i] %= 10; } while((no.a[i] == 0) && (i > 1)) i--; no.len = i; return no; } int main() { char st[511]; node no, n1, n2; scanf("%s", st+1); n1.len = strlen(st+1); for(int i=1; i<=n1.len; i++) n1.a[n1.len - i + 1] = st[i] - '0'; scanf("%s", st+1); n2.len = strlen(st+1); for(int i=1; i<=n2.len; i++) n2.a[n2.len - i + 1] = st[i] - '0'; no = n1 * n2; for(int i=no.len; i>=1; i--) printf("%d", no.a[i]); printf("\n"); return 0; } -
0
- 1
信息
- ID
- 94
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- 递交数
- 521
- 已通过
- 110
- 上传者