当前位置: 首页 > news >正文

高精度乘法

思想:

由于数超出了long long范围,所以输入两个字符串代表数据,之后创建三个数组,分别代表两个乘数数组还有一个代表结果数组,先把两个字符串的数据逆序存储到两数组中,之后遍历两数组,求每个数组元素的乘积,第一个数组i元素值和第二个数组j元素的值乘积之和结果会落在结果数组的i+j-1的位置上,当两数组全部遍历完之和,乘积结束,最后输出结果,具体代码以及细节如下

#include<bits/stdc++.h> using namespace std; int main() { string s1, s2; cin >> s1 >> s2; int lmax = s1.size() + s2.size(); //最后一位的进位到lmax位置上 vector<int> vec1(lmax+1); //多开一个避免最后输出vec3越界 vector<int> vec2(lmax+1); vector<int> vec3(lmax+1); for (int i = 0; i < s1.size();i++) { vec1[s1.size() - i] = s1[i]-'0'; } for (int i = 0; i < s2.size(); i++) { vec2[s2.size() - i] = s2[i]-'0'; } for (int i = 1; i <= s1.size();i++) { for (int j = 1; j <= s2.size();j++) { vec3[i + j - 1] += vec1[i]*vec2[j]; //第一个数的i位和第二个数的j位相乘之和会落在结果数组的i+j-1的位置上 vec3[i + j]+= vec3[i + j - 1] / 10; //进位(一直进位,直到不再出现该位) vec3[i + j - 1] = vec3[i + j - 1]%10; } } for (int i = lmax; i >= 1;i--) { if (i==lmax&&vec3[i]==0) { continue; } cout << vec3[i]; } cout << endl; return 0; }
http://www.jsqmd.com/news/322936/

相关文章:

  • linux 使用Xcb监听窗口
  • 【笔记】【股票小白入门5-股票界面】
  • linux 使用Xcb监听键盘鼠标输入
  • 26年寒假生活指导1.30
  • SAP克服艰难开局实现8%增长
  • C++面向对象入门:实验三
  • ManageEngine在阿联酋设立数据中心强化数据主权承诺
  • 东南亚海外仓商品SKU标准化,降低错发率提升仓库运营效率
  • AI大模型应用实践:40个高价值场景+151个典型应用+66个央企大模型清单
  • 网络安全跻身英国五大增长最快职业领域
  • 基于微信小程序的高校学生社团活动管理系统的设计和实现
  • 一文掌握大模型AI在行政管理中的高效应用技巧
  • 真香警告!RAG技术让大模型“知识库“实时更新,小白也能变大神
  • 拣货慢、错发多?1个策略,让东南亚海外仓一件代发效率翻倍!
  • Python+django基于小程序的企业员工考勤打卡系统设计与实现-
  • AI杀疯了!当大模型遇见结构化数据,这个“翻译官“技术让业务人员也能玩转SQL查询
  • 程序员必看!RAG系统调优实战,没有银弹只有数据说话
  • Python+django基于小程序的大学运动会比赛报名系统as6e8
  • 海外仓必看!这4类仓库已被跨境卖家集体避雷,附管理破局方案
  • Postman使用教程 - 教程
  • 自然语言处理在AI原生应用中的7个关键技术解析
  • 复杂推理任务协调中元控制器的决策优化研究
  • Python+django基于小程序的民宿预订系统-web pc 手机端
  • P4462 [CQOI2018] 异或序列
  • 检索增强生成(RAG)落地实践:深入剖析痛点与系统性解决方案
  • AI+企业办公:8大核心应用场景深度解析,从入门到精通
  • 大数据领域数据仓库的安全审计流程
  • 为什么要学习大模型应用开发?2026大模型学习宝典:零基础入门到高薪offer的进阶之路
  • 大模型实战案例:运营商如何从“管道“到“智能服务商“的华丽转身
  • 政务大模型应用全攻略:政策解析、技术路线与实践案例,助力开发者入门