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

北京网站制作公司飞沐html5的优点

北京网站制作公司飞沐,html5的优点,安徽天长建设局网站,深圳福田站高精度乘法、除法 一、高精度乘法⭐1.1 初步理解1.1.1 高精度的定义1.1.2 为什么会有高精度1.1.3 高精度乘法的复杂度 1.2 思想讲解1.3 代码实现1.3.1 声明1.3.2 实现高精度乘法1.3.3 整体实现1.3.4 代码测试 二、高精度除法⭐2.1 初步理解2.2 思想讲解2.3 代码实现2.3.1 声明2…

高精度乘法、除法

  • 一、高精度乘法⭐
    • 1.1 初步理解
      • 1.1.1 高精度的定义
      • 1.1.2 为什么会有高精度
      • 1.1.3 高精度乘法的复杂度
    • 1.2 思想讲解
    • 1.3 代码实现
      • 1.3.1 声明
      • 1.3.2 实现高精度乘法
      • 1.3.3 整体实现
      • 1.3.4 代码测试
  • 二、高精度除法⭐
    • 2.1 初步理解
    • 2.2 思想讲解
    • 2.3 代码实现
      • 2.3.1 声明
      • 2.3.2 div部分
      • 2.3.3 整体部分

hello! 这里是欧_aita的频道。
今日语录:不要等待机会,而要创造机会。
祝福语:愿你的程序像太阳一样明亮,给世界带来温暖和光明。
大家可以在评论区畅所欲言,可以指出我的错误,在交流中共同进步。
欢迎大家关注我的专栏:
数据结构与算法(内含蓝桥杯算法训练)
C++基础
MySQL数据库

一、高精度乘法⭐

1.1 初步理解

1.1.1 高精度的定义

在计算机科学中,高精度算法通常指的是处理超过计算机原生数据类型表示范围的数字的能力。例如,如果要处理非常大或非常小的整数或小数,可能需要使用高精度算法,因为标准的整数和浮点数类型的表示范围是有限的。

通常存在两种
1.大整数高精度
2.浮点型高精度

1.1.2 为什么会有高精度

举个例子,如果需要运算一个按千亿级别的加减乘除运算,按照普通的运算方法是非常占用时间的,但是我们如果使用一个数组存储想要进行运算的数字,然后化解为三个数的运算,这样就会大大提高代码的效率。

1.1.3 高精度乘法的复杂度

会依次遍历存储大整数的数组,所以时间复杂度是O(n),其中n是指存储大整数的数组长度。

1.2 思想讲解

首先是输入,我们正常来说都会选择倒着存储数字
在这里插入图片描述
注意下标表示的是数组中的下标
在这里插入图片描述
在这里插入图片描述
此时所求的C就求出来了

1.3 代码实现

1.3.1 声明

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>using namespace std;

1.3.2 实现高精度乘法

vector<int> mul(vector<int>& A, int b)
{vector<int> C;int t = 0;for (int i = 0; i < A.size(); i++){t += A[i] * b;C.push_back(t % 10);t /= 10;}return C;
}

这里最不好理解的是t,这个t是重复使用的,但也是在不断更新的。

1.3.3 整体实现

#include <iostream>
#include <cstring>
#include <vector>using namespace std;vector<int> mul(vector<int>&A, int b)
{vector<int>C;int t = 0;for (int i = 0; i <= A.size() - 1; i++){t = A[i] * b + t;C.push_back(t % 10);t /= 10;}return C;
}int main()
{string a;int b;cin >> a >> b;vector<int>A;for (int i = a.size()-1; i >=0; i--){A.push_back(a[i]-'0');}vector<int>C = mul(A, b);for (int i = C.size() - 1; i >= 0; i--)cout << C[i];cout << endl;return 0;
}

1.3.4 代码测试

在这里插入图片描述

二、高精度除法⭐

在这里插入图片描述

2.1 初步理解

大致理解是和乘法是一样的,但是除法的实现会更加抽象。

2.2 思想讲解

在这里插入图片描述
得出的结果是上一位余数(r*10+A[i])/b。

2.3 代码实现

2.3.1 声明

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>using namespace std;

2.3.2 div部分

vector<int> div(vector<int>& A, int b,int &r)
{vector<int> C;r = 0;for (int i = A.size() - 1; i >= 0; i--){r = r * 10 + A[i];C.push_back(r / b);r %= b;}reverse(C.begin(), C.end());while (C.size() > 1 && C.back() == 0)C.pop_back();return C;
}

注意,原本的vector数组中只能对队尾元素插入删除实现O(1)的时间复杂度,所以我们把整个结果reverse一遍,这样判断数组尾部是否为0,如果是就删除。

2.3.3 整体部分

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>using namespace std;
//高精度除法vector<int> div(vector<int>& A, int b,int &r)
{vector<int> C;r = 0;for (int i = A.size() - 1; i >= 0; i--){r = r * 10 + A[i];C.push_back(r / b);r %= b;}reverse(C.begin(), C.end());while (C.size() > 1 && C.back() == 0)C.pop_back();return C;
}int main()
{string a;int b;cin >> a >> b;vector<int>A;for (int i = a.size() - 1; i >= 0; i--)A.push_back(a[i] - '0');int r;auto C = div(A, b,r);for (int i = C.size() - 1; i >= 0; i--)printf("%d", C[i]);cout << endl << r << endl;system("pause");return 0;
}

这篇文章就到此结束了,如果对你有所帮助,就点个赞吧,你的支持对我而言很有帮助!

http://www.yayakq.cn/news/659735/

相关文章:

  • wordpress模板 户外钓鱼类网站旅行社网页设计
  • 网站开发用笔记本电脑网站开发及app开发公司
  • 有源代码怎么做网站石城县网站建设
  • 安徽网站建设cnfg安徽合肥建设银行招聘网站
  • 用织梦建设网站的步骤网站建设公司招人
  • 怎么样免费做公司网站湘潭简单的网站建设公司
  • 用360打开自己做的网站有广告网站分享到朋友圈代码
  • 河南网站建设设计价格wordpress怎么改后台密码
  • 网站开发与设计实验报告wordpress 页面 编辑
  • 江西医疗网站建设网盘资源共享群吧
  • 济宁网站建设哪家好简易做海报网站
  • 化妆品企业网站源码建自己的网站
  • 保定网页设计招聘网站网站外链建设书籍
  • 在网站上可以做哪些互动活动可以商用的图片网站
  • 一个空间只能放一个网站吗通过网站开发工具怎么改自动跳网站
  • 石家庄网站推广服务平台仙桃有哪些做网站的公司
  • 阿里云做网站送服务器吗怎么免费构建自己的网站
  • 网站设计步骤的教学设计网站建设博客
  • 建网站公司汽车六万公里是否累变速箱油极品教师韩剧在线观看第一集
  • 北京西站进站最新规定中信建设有限责任公司历任董事长
  • 大学生可做的网站主题wordpress 美观插件
  • 微网站广州外贸网站设计
  • 汕头汽车网站建设ui设计学校
  • 网站切片 做程序旅行社英文模板网站
  • 咸阳兼职做网站晋中住房与城乡建设厅网站
  • 什么都不会怎么做网站江苏广泽建设公司网站
  • 网站建设项目技术百度店铺怎么开通
  • 长沙销售公司 网站wordpress 建网站视频
  • 电商网站商品详情页网站制作一条龙全包
  • 织梦网站404怎么做沈阳网站制作思路网络