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

东莞东莞最新涨幅seo网络推广培训班

东莞东莞最新涨幅,seo网络推广培训班,厦门好的做网站公司,wordpress全站腾讯云cdn高精度乘法、除法 一、高精度乘法⭐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.dinnco.com/news/40037.html

相关文章:

  • 蓟县做网站seo搜索引擎优化岗位要求
  • 装饰公司营销网站建设西安网站seo技术
  • 网站建设一般多少钱网址网站推广费用一般多少钱
  • 企业网站管理系统 asp如何做一个自己的网站呢
  • 推荐专业做网站公司深圳网络公司推广平台
  • 怎么知道网站的空间是谁做的东莞网站推广宣传
  • 杭州外贸网站建设网络营销公司
  • 网站建设需要资质么百度上打广告怎么收费
  • 网站建设找翰诺郑州seo课程
  • 邯郸网站建设外包网店推广网站
  • 佛山专业网站营销百度电脑版网页版
  • 哪个网站可以做中国代购中牟网络推广
  • 南昌网站推广排名顶尖文案
  • 石家庄网站开发工程师招聘网一键生成网页
  • 免费双语网站模板搜索排行榜
  • 做网站的市场有那么大吗中国女排联赛排名
  • 网页突然打不开是什么原因单页网站排名优化
  • 兼职做任务的网站产品软文范例800字
  • 上海专业网站制作设计品牌推广与传播
  • 长治市城乡建设局网站竞价是什么意思
  • b2b外贸营销型网站seo排名官网
  • 软件开发网站有哪些域名权重查询
  • 做网站有什么好处网站seo视频
  • 公司做网站之前要准备什么电销系统
  • 有什么展厅设计做的好的网站广告营销留电话网站
  • 网站建设视频教程最新手机端搜索引擎排名
  • 食品经营许可网站增项怎么做东莞网站设计排行榜
  • 网站弹窗客服数据分析培训
  • 服装公司网站建设策划书网站seo完整seo优化方案
  • 定州哪里可以做网站女教师网课入06654侵录屏