A*B Problem(High)
这高精度是真__的难
题目描述
给出两个自然数,求它们的乘积。
输入格式
输入共两行,每行一个自然数。
输出格式
输出一个自然数表示乘积。
样例 #1
样例输入 #1
1 2
样例输出 #1
2
提示
每个自然数不超过
code:
#include <bits/stdc++.h> using namespace std; int a[2023],b[2023],c[4000001]; string x,y; int main(){ cin>>x>>y; int n = x.size(),m = y.size(); for(int i = 0;i<n;i++) a[i] = x[n-i-1] - '0'; for(int i = 0;i<m;i++) b[i] = y[m-i-1] - '0'; int t = n+m-1; for(int i = 0;i<n;i++) for(int j = 0;j<m;j++) c[i+j] += a[i] * b[j]; for(int i = 0;i<t;i++){ c[i+1] += c[i]/10;//用+=是因为可能有进位 c[i] %= 10;//进位后的实际情况 } while(c[t] != 0){ c[t+1]+=c[t]/10; c[t]%=10; t++; } while(c[t-1] == 0 and t > 1) t--; for(int i = t-1;i >= 0;i--) cout<<c[i]; return 0; }
本文作者:nasia
本文链接:https://www.cnblogs.com/nasia/p/17533991.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步