高精度高精度乘法(C++)

2023-10-27

高精度加法以及高精度单精度乘法这里就不过多赘述了。

 今天咱们的主角是高精度高精度乘法

咱们先回顾一下竖式乘法

 

 我们先不急着进位,先来看看,对应位置上的数字都是这么来的。

对于不足位我们补充零后,不难发现,对应位置的最后答案,是由该位置起以后的全部位交叉相乘获得,这么说大家可能不是很明白。 

以下一位为例:

那么对应 4 2 下面的16 15 12 是怎么来的呢

我们重新回忆一下竖式乘法过程:

 看到这里大家有没有一下子就明白了我刚刚的说法呢

然后我们考虑结果有多少位

除第一次乘得的结果对齐外,其他位乘得的结果都左移一位

最后的结果长度 = 数a的长度+数b的长度 - 1;

最后,我们加上前导零,这就是我们算法最终的样子。

 当然,最后的结果,我们还需要进位,值得注意的是,由于我们的取得的数不是很大,当数据比较大时,可能会对第一位产生进位,这时,我们的数据的最终长度需要在上面的结果上+1。

至此,我们的高精度高精度乘法就结束了。

由于我看博客一直秉承着:没有代码一律不看的原则。

so:

#include<bits/stdc++.h>
using namespace std;
const int N = 3000;
int x[N],y[N];
int c[N];
string a,b;
int num;
void mults()
{ 
	num = a.size()+b.size()-1;
	for(int i=0;i<num;i++)
	{
		for(int j=0;j<=i;j++)c[i] += x[j]*y[i-j];
		if(c[i]>=10)
		{
			c[i + 1] += c[i] / 10;
      		c[i] %= 10;	
		}
	}
	//去掉多余的前导零 
	for(int i=num;i>0;i--)
	{
		if(c[i] == 0)num--;
		else break;
	}
}
int main()
{
	cin>>a>>b;
	memset(x,0,sizeof(x));
	memset(y,0,sizeof(y));
	for(int i =a.size()-1;i>=0;i--)	x[a.size()-1-i]=a[i] -'0'; 	
	
	for(int i= b.size()-1;i>=0;i--) y[b.size()-1-i]=b[i] -'0'; 
	
	mults();
	
	for(int i=num;i>=0;i--)	 printf("%d",c[i]);
	return 0;
	
} 

今天的学习经验分享就到这里吧

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

高精度高精度乘法(C++) 的相关文章

随机推荐

  • 随机变量序列的收敛性质分类

    分类 X n 趋向某个固定的数 X n 趋向某个确定函数的输出值 X n 的概率分布越来越接近某个特定的随机变量的概率分布 X n 和某个特定随机变量的差别的平均值 数学期望值 趋向于0 X n 和某个特定随机变量的差别的方差趋向于0 约束
  • 面试题:String 和 StringBuilder、StringBuffer 的区别?

    Java 平台提供两种类型的字符串 String 和 StringBuffer StringBuilder 它们可以存储和操作字符串 其中String是只读字符串 也就意味着String 引用的字符串内容是不能被改变的 而StringBuf
  • 多益网络校招笔试题

    马上要参加多益的笔试了 所以在网上找了一下多益的笔试题 原文 我感觉我想出了一个更简单的方法 时间复杂度O 1 如果有问题希望大家及时指正 题目如下 给定一个数x x gt 5 找到该数与3 4之间的关系 关系如下 x 3 n 4 m 然后
  • 最近我在忙什么之【毕业设计大纲】

    毕业设计工作日志 误差校正仿真 理论部分 Stewart平台位姿误差分析与标定研究 仿真部分 基于Matlab的全局搜索 单通道控制算法设计 滑模论文 根据论文仿真 填入参数 获取具体的传递函数 改进滑模的论文 扰动及对照实验设计 稳定平台
  • Ubuntu下使用MySQL(C++,Cmake)

    安装需要使用的库 sudo apt get install libmysqlclient dev 头文件 usr include mysql mysql的头文件在这里 引入头文件 include mysql h 如果找不到就 include
  • python web.py+requests 视频接收与发送

    web py是python中一个相对容易上手的web服务器搭建工具 1 安装方式 web py可以直接通过pip install 的方式安装即可 即 pip install web py 2 服务器 2 1 完整程序 import web
  • 迷宫问题—回溯法

    文章目录 一 项目分析的一般步骤 二 迷宫问题的具体解决 1 需求分析 2 问题分析 2 1 问题分析 2 2 数据结构设计的分析 3 设计 流程图设计 代码设计 3 1流程图设计 3 2代码设计 4 代码测试 5 完成交付 一 项目分析的
  • Springboot+Mybatis,dao加上@Repository注解无法注入

    在springboot 中 给mapper的接口上加上 Repository 无法生成相应的bean 从而无法 Autowired 这是因为spring扫描注解时 自动过滤掉了接口和抽象类 这种情况下可以在启动的类前加 上 MapperSc
  • 如何在 Python 中创建元组字典

    本演练是关于在 Python 中创建元组字典的全部内容 此数据结构存储键值对 通过组合字典和元组 可以创建元组字典 好处是以结构化格式组织且可访问的数据 可以轻松表示每个键的多个值 例如学生成绩或联系信息 让我们看看它如何有效地存储和检索复
  • 抖音生活小妙招类短视频创作技巧分享,几个方面带你了解整个流程

    想做抖音 又不想真人出镜 该选择什么项目做呢 更多精彩干货请关注共众号 萤火宠 免费领取108个抖音小项目 我们的学员中有宝妈 有大学生 也有不少职场人员 他们大多数都非常普通 没有什么很强的职业技能 也没有什么丰富的专业知识 但是他们有人
  • 找实习、工作的一点浅见

    一 实习的必要性 为什么需要去实习 1 实习能帮助自己增进对于具体职场的认识 包括具体工作的职责 内容 工作氛围 是否有较大压力等等 2 通过一段时间的实习经历 能帮助自己作出未来是否能胜任类似的工作的判断 如果有留用 是否考虑留下 如果没
  • 阿里的iOS协程库 coobjc 源码解析(一)——元组和协程

    Coobjc中的元组 底层主要依赖NSPointerArray进行实现 因为NSPointerArray支持插入nil指针 能配合元组中有对象为nil的特性 比较引人入胜的设计 主要是co tuple 这个宏定义 co tuple COTu
  • 学习笔记:SpringCloud 微服务技术栈_实用篇②_黑马旅游案例

    若文章内容或图片失效 请留言反馈 部分素材来自网络 若不小心影响到您的利益 请联系博主删除 前言 学习视频链接 SpringCloud RabbitMQ Docker Redis 搜索 分布式 史上最全面的 SpringCloud 微服务技
  • CSS水平垂直居中

    1 利用定位 margin auto 2 flex布局 3 grid布局 一 利用position margin auto
  • 深入剖析 Python 函数参数传递机制及高级应用

    前言 在本篇文章中 笔者将带你深入探讨 Python 函数传参的进阶主题 通过阅读本篇文章 你可以深入了解 Python 函数传参的进阶主题 掌握更多高级的函数技巧 提升你的 Python 编程能力 前面分享了Python 函数传参基础篇
  • linux 安装Elasticsearchhe和kibana以及启动遇到的错误解决(已成功运行)

    linux安装es和kibana 参考博文 https blog csdn net han12398766 article details 88373869 启动报错1 Exception elasticsearch keystore 这个
  • ELK+Wazuh搭建笔记

    本文借鉴https www cnblogs com backlion p 10394369 html 在此谢谢大佬指明方向 本人又总结了wazuh界面上opencat Vulnerabilities的后台配置情况 以及agent版本升级情况
  • 页面刷新 Vuex 数据丢失

    用 Vuex 的时候发现一个问题 在页面刷新的时候 vuex 的 state 里面存储的数据会丢失 问题产生原因 因为 store 里的数据是保存在运行内存中的 当页面刷新时 页面会重新加载 vue 实例 store 里面的数据就会被重新赋
  • 子类覆盖父类方法时参数以及方法的访问权限问题

    一 子类覆盖父类可继承方法时子类同名方法的访问权限必须大等于父类 父类private不被子类继承 也无覆盖一说 报错 Fatal error Access level to Sun3 a must be protected as in cl
  • 高精度高精度乘法(C++)

    高精度加法以及高精度单精度乘法这里就不过多赘述了 今天咱们的主角是高精度高精度乘法 咱们先回顾一下竖式乘法 我们先不急着进位 先来看看 对应位置上的数字都是这么来的 对于不足位我们补充零后 不难发现 对应位置的最后答案 是由该位置起以后的全