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

主流的网站开发技术有百度智能云

主流的网站开发技术有,百度智能云,外发加工网缝纫,最简单的软件开发工具简单数论(4) 前言三.高精度1.什么是高精度2.解决办法 精度乘除法一.精度乘法1.数据的存储2.步骤3.例题:高精度乘法 二.精度除法1.例子2.步骤3.例题:高精度除法 前言 我会将一些常用的算法以及对应的题单给写完,形成一套…

简单数论(4)

  • 前言
  • 三.高精度
    • 1.什么是高精度
    • 2.解决办法
  • 精度乘除法
    • 一.精度乘法
      • 1.数据的存储
      • 2.步骤
      • 3.例题:高精度乘法
    • 二.精度除法
      • 1.例子
      • 2.步骤
      • 3.例题:高精度除法

前言

我会将一些常用的算法以及对应的题单给写完,形成一套完整的算法体系,以及大量的各个难度的题目,目前算法也写了几篇,滑动窗口的题单正在更新,其他的也会陆陆续续的更新,希望大家点赞收藏我会尽快更新的!!!

三.高精度

1.什么是高精度

对运算的精度要求非常高,用已知的数据类型无法精确表示的数值,现有的数据类型存不下,无法计算

2.解决办法

1.一般是用数组模拟大数的运算
2.开一个比较大的整数数组或字符串
3.数组或字符串的元素代表大数的某一位
4.通过数组或字符串元素的运算模拟大数的运算
5.最后将代表大数的数组或字符串输出

精度乘除法

一.精度乘法

1.数据的存储

1.将数据存在数组中,并且0存个位数(数组a,b);
2.结果:将结果单独放入一个数组,每个单独的位置放置对应的结果,判断每个结果>是否还有进位(c);
注意:c[i+j] = a[i] * b[j]

2.步骤

1.用字符串读入,再倒着将其存在数组里
2.用两层for循环遍历这两个数组让他们相乘
3.将其存入到另一个数组中(长度位a+b)
4.用for循环遍历处理进位
5.去掉前导零

3.例题:高精度乘法

洛谷P1303 A*B Problem

题解:

#include <iostream>
#include <string>
using namespace std;
void init(int* a) {//初始化string s; cin >> s;a[0] = s.size();//数组的0位置存元素个数for (int i = 1; i <= a[0]; i++) {a[i] = s[a[0] - i] - '0';//将字符串倒着存在数组中}
}
//每次的除数
void numcpy(int* a, int* b, int n) {//n为后面有几个零a[0] = b[0] + n;//有多少位for (int i = 1; i <= n; i++) {//将前面初始化为零a[i] = 0;}for (int i = n + 1; i <= a[0]; i++) {//将值赋给a[i] = b[i - n];}
}bool check(int* a, int* t) {//检查哪个大if (t[0] > a[0]) {return false;}else if (t[0] < a[0]) {return true;}else {for (int i = a[0]; i > 0; i--) {if (t[i] > a[i]) {return false;}else if (t[i] < a[i]) {return true;}}return true;}
}void sub(int* t, int* a) {//两数相减for (int i = 1; i <= a[0]; i++) {a[i] -= t[i];if (a[i] < 0) {a[i] += 10;a[i + 1]--;}}int l = a[0];//位数while (a[l] == 0 && l >= 1) {//去除前导零a[0]--;l--;}
}int main() {int a[100005], b[100005];//除数和被除数int ans[100005] = { 0 };//答案init(a);init(b);ans[0] = a[0] - b[0] + 1;//答案最多有多少位数if (ans[0] <= 0) {//如果除数小于被除数cout << '0' << endl;return 0;}for (int i = ans[0]; i > 0;i--) {int t[100005] = { 0 };//存每次的被除数numcpy(t, b, i - 1);while (check(a, t)) {sub(t, a);ans[i]++;}}for (int i = ans[0]; i > 0; i--) {//去掉前导零if (i == ans[0] && ans[i] == 0) {continue;}cout << ans[i];}return 0;
}

二.精度除法

本质为减法

1.例子

如:
531518 / 123 = 4321 ‘’‘’‘’ 35;
为:
531518 / 123000 = 4 ‘’‘’‘’ 39518
39518 / 12300 = 3 ‘’‘’‘’ 2618
2618 /1230 = 2 ‘’‘’‘’ 158
158 / 123 = 1 ‘’‘’‘’ 35
n位数除m位商位数最多为n - m + 1

2.步骤

1.利用字符串读入被除数和除数
2.把字符串倒着放入到数组中(把数组0的位置空出来,记录总共有多少位)
3.进行循环求商的每一位(如果a<b则商的结果为零)
注意:余数在被除数数组中

3.例题:高精度除法

洛谷P2005 A/B Problem II

#include <iostream>
#include <string>
using namespace std;
void init(int* a) {//初始化string s; cin >> s;a[0] = s.size();//数组的0位置存元素个数for (int i = 1; i <= a[0]; i++) {a[i] = s[a[0] - i] - '0';//将字符串倒着存在数组中}
}
//每次的除数
void numcpy(int* a, int* b, int n) {//n为后面有几个零a[0] = b[0] + n;//有多少位for (int i = 1; i <= n; i++) {//将前面初始化为零a[i] = 0;}for (int i = n + 1; i <= a[0]; i++) {//将值赋给a[i] = b[i - n];}
}bool check(int* a, int* t) {//检查哪个大if (t[0] > a[0]) {return false;}else if (t[0] < a[0]) {return true;}else {for (int i = a[0]; i > 0; i--) {if (t[i] > a[i]) {return false;}else if (t[i] < a[i]) {return true;}}return true;}
}void sub(int* t, int* a) {//两数相减for (int i = 1; i <= a[0]; i++) {a[i] -= t[i];if (a[i] < 0) {a[i] += 10;a[i + 1]--;}}int l = a[0];//位数while (a[l] == 0 && l >= 1) {//去除前导零a[0]--;l--;}
}int main() {int a[100005], b[100005];//除数和被除数int ans[100005] = { 0 };//答案init(a);init(b);ans[0] = a[0] - b[0] + 1;//答案最多有多少位数if (ans[0] <= 0) {//如果除数小于被除数cout << '0' << endl;return 0;}for (int i = ans[0]; i > 0;i--) {int t[100005] = { 0 };//存每次的被除数numcpy(t, b, i - 1);while (check(a, t)) {sub(t,a);ans[i]++;}}for (int i = ans[0]; i > 0; i--) {//去掉前导零if (i == ans[0] && ans[i] == 0) {continue;}cout << ans[i];}return 0;
}
http://www.dtcms.com/wzjs/331176.html

相关文章:

  • 网站点击率高百度本地惠生活推广
  • 河南省建设厅网站总经济师新东方雅思培训价目表
  • 网站开发工资百度有专做优化的没
  • 烟台网站搜索优化建立网站的详细步骤
  • 目录浏览的网站linux网站入口
  • wordpress 京东导购seo流量优化
  • 网站开发收费标准文档seo服务如何收费
  • 安阳昨天发生的事件关键词排名优化工具
  • 营销型网站建设应该注意什么免费留电话号码的广告
  • 特价做网站百度引擎搜索推广
  • 企业官方网站建设费用智能建站平台
  • 网站建设设计文档模板下载短视频培训课程
  • 可以做动漫的网站有哪些网络运营工作内容
  • pc端和移动端的网站区别是什么中国优秀网页设计案例
  • 青岛网站建设-中国互联河北seo诊断培训
  • thinkphp做网站好吗推广平台有哪些?
  • dede跳转到其他网站广告买卖网
  • 做海报的网站类似于创客贴企业网站怎么做
  • wordpress数据库用户导出seo网络推广公司排名
  • 网站怎么做用什么软件常州百度关键词优化
  • wordpress可以建哪些网站吗百度渠道开户哪里找
  • jsp网站如何做seo1688seo优化是什么
  • 专业做英文网站百度推广非企代理
  • 武汉建筑工程百度seo技术
  • 厦门网站建设哪家好推广app平台
  • 下载别人做的ppt的网站百度小程序对网站seo
  • 建设旅行网站策划书站长平台
  • 哈尔滨论坛建站模板最全资源搜索引擎
  • 政府网站模板 下载在哪里打广告效果最好
  • excel做网站链接郑州官网关键词优化公司