高精度乘低精度(利用C++ STL vector实现)

it2026-01-23  3

【算法分析】

利用C++ STL vector实现高精度乘法简洁、高效。

利用C++ STL vector实现高精度乘法过程中,需要用到的STL vector的push_back函数知识点简介如下:

#include <bits/stdc++.h> using namespace std; int main() { vector<int> v; for(int i=0; i<=3; i++) { v.push_back(i); // -> 0 1 2 3 } for(int i=0; i<=3; i++) { cout<<v[i]<<" "; //0 1 2 3 } cout<<endl; for(int i=3; i>=0; i--) { cout<<v[i]<<" "; //3 2 1 0 } return 0; }

 

【程序代码】

#include <bits/stdc++.h> using namespace std; vector<int> v,ans; int main() { string a; int b; cin>>a>>b; for(int i=a.size()-1; i>=0; i--) { v.push_back(a[i]-'0'); } int t=0; for(int i=0; i<v.size(); i++) { ans.push_back((v[i]*b+t)%10); t=(v[i]*b+t)/10; } if(t) ans.push_back(t); for(int i=ans.size()-1; i>=0; i--) { cout<<ans[i]; } return 0; } /* input: 123456 654321 output: 80779853376 */

 

【参考文献】

http://www.cplusplus.com/reference/vector/

https://blog.csdn.net/weixin_41514525/article/details/97613177?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

 

最新回复(0)