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

有哪些可以在线做海报的网站国内网站建设公司

有哪些可以在线做海报的网站,国内网站建设公司,做个企业网网站怎么做,中国做的儿童编程网站高精度乘法、除法 一、高精度乘法⭐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.hkea.cn/news/541741/

相关文章:

  • 手机网站建设 cms营销技巧和营销方法
  • 平顶山做网站优化微博搜索引擎优化
  • 网站如何做品牌宣传海报每日舆情信息报送
  • 做论坛网站需要多大空间seo推广招聘
  • 中国建设银行网站软件不限次数观看视频的app
  • 网站开发建设的步骤win11优化大师
  • 在线做数据图的网站樱桃bt磁力天堂
  • 网站建设费的税率东莞公司网上推广
  • 上海设计公司排名前十宁波seo搜索优化费用
  • 如皋做网站公司com域名
  • 织梦做企业网站教程网络营销推广方案论文
  • 微信如何添加小程序二十条优化措施全文
  • 网站制作费可以做业务宣传费河北百度推广电话
  • wordpress日主题破解网站排名优化软件有哪些
  • 做公众号app 网站 app济南网站设计
  • 单位网站 单位网页 区别吗福州seo顾问
  • 专业做网站制作的公司百度地图网页版进入
  • 买卖网站域名骗局百度推广登陆
  • 石家庄大型网站设计公司手机怎么建网站
  • 政府网站图解怎么做百度关键词排名靠前
  • 天津做网站印标东莞网络推广排名
  • 设计一个外贸网站需要多少钱沈阳网站推广优化
  • 洗化行业做网站福州百度seo排名
  • 西安app网站开发项目腾讯域名注册官网
  • 网站开发的技术指标如何做网站搜索引擎优化
  • 建网站的要求老铁外链工具
  • wordpress有广告郑州seo优化大师
  • 企业网站推广的实验内容企业宣传网站
  • 如何开发高端市场宁波seo快速优化公司
  • 常用设计资源网站爱网站