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

深圳找工作的网站八桂职教网技能大赛2024

深圳找工作的网站,八桂职教网技能大赛2024,电商运营入门基础知识,seo企业网站源码目录 1. 基础知识 2. 大整数 大整数 3. 大整数 - 大整数 1. 基础知识 利用计算机进行数值计算#xff0c;有时会遇到这样的问题#xff1a;有些计算要求精度高#xff0c;希望计算的数的位数可达几十位甚至几百位#xff0c;虽然计算机的计算精度也算较高了#xff0c…目录 1. 基础知识 2. 大整数 大整数 3. 大整数 - 大整数 1. 基础知识 利用计算机进行数值计算有时会遇到这样的问题有些计算要求精度高希望计算的数的位数可达几十位甚至几百位虽然计算机的计算精度也算较高了但因受到硬件的限制往往达不到实际问题所要求的精度。我们可以利用程序设计的方法去实现这样的高精度计算。 这里我们要介绍大整数  大整数大整数 - 大整数大整数 * 小整数大整数 / 小整数。 大整数显然用简单的数据类型是无法表示的。所以我们选用数组来存储大整数的每一位。于是就产生了这么一个问题数组下标为0的元素是存最高位还是最低位呢 显然我们在运算过程中可能会发生进位这时如果我们用第一种下标为0存最高位在运算过程中最高位发生进位时就需要在数组的前面添加一个新的位置来存放产生的进位。这就需要将数组的元素整体向后移动这很麻烦。所以我们选用第二种方式来存储大整数下标为0存最低位这样在产生进位时我们只需要在数组的后面添加一个位置即可。这是非常容易滴。 2. 大整数 大整数 我们可以从人类计算加法的方法中找出做加法的规律 下面以 345678 6789 距离分析我们将存储进位的变量 carry 初始化为0然后让 carry 去与两个大整数的个位相加即 0 8 9 17将得到的结果 17 对 10 取模得到相加后的个位7push_back到存放结果的数组然后继续将相加后的结果17除以10作为下一位相加的进位。依次类推直到将两个大整数的每一位相加。 #includeiostream #includevector using namespace std;//传引用可以提高效率不用copy一遍数组了 vectorint add(vectorint A, vectorint B) {//存放结果的数组vectorint C;//用来记录进位的变量初始化为0int carry 0;//对两个大整数的对应位置的数相加for (int i 0; i A.size() || i B.size(); i){//因为两个大整数的长度可能有差异当一个大整数的每一位加完了就不需要继续了if (i A.size())carry A[i];if (i B.size())carry B[i];C.push_back(carry % 10);carry / 10;}//如果最高位相加有进位(只可能是1push_back 1 也行)再将进位push_backif (carry){C.push_back(carry);}return C;}void test01() {//两个大整数以字符串的形式输入string a, b;cout 请输入两个整数以回车键结束 endl;cin a b;//两个数组用来存放大整数的每一位vectorint A, B;//将输入的大整数的每一位拆分后添加到数组//数字字符 - 0 即可得到数字字符对应的数字for (int i a.size() - 1; i 0; i--){A.push_back(a[i] - 0);}for (int i b.size() - 1; i 0; i--){B.push_back(b[i] - 0);}//用一下大整数加法的接口并且用C接收最终结果vectorintC add(A, B);cout 相加的结果;//输出结果for (int i C.size() - 1; i 0; i--){printf(%d, C[i]);}cout endl; }int main() {//大整数的加法test01();system(pause);return 0; } 3. 大整数 - 大整数 大整数减去大整数用户可能输入的是一个较小的大整数减去一个较大的大整数我们就需要先进行一个比较确保我们在做减法时是大的数减去小的数如果需要在最终的结果上加上负号即可。 与大整数加大整数类似对两个大整数的每一位做减法显然这时有两种情况当减数小于被减数此时就需要向前借一位而当减数大于等于被减数则不需要进位。 这里还有一个问题就是相减的结果在打印时可能会有先导0例如12345 - 12300 在没有去掉先导0得到的结果就是00045这显然不是我们想要的。我们需要对存放结果的数组的最后一个元素进行判断如果该元素为0就需要将其pop掉。但是如果相减的最终结果是0这样做存放结果的数组里面将没有元素了所以我们需要保证存放结果的数组中至少有一个元素。 bool cmp(vectorint A, vectorint B) {//先比较两整数的长度if (A.size() ! B.size()){return A.size() - B.size();}//从最高位开始比较for (int i A.size() - 1; i 0; i--){if (A[i] ! B[i])return A[i] B[i];}//这里代表两个数相等return true; }vectorint sub(vectorint A, vectorint B) {vectorint C;int borrow 0;for (int i 0; i A.size(); i){//减数减去借位borrow A[i] - borrow;//当i不小于被减数的大小就不用做减法了if (i B.size())borrow - B[i];//利用一般规律push_back结果C.push_back((borrow 10) % 10);//有借位borrow置为1if (borrow 0)borrow 1;elseborrow 0;}//去掉先导0while (C.size() 1 C.back() 0){C.pop_back();}return C; }void test02() {//两个大整数以字符串的形式输入string a, b;cout 请输入两个整数以回车键结束 endl;cin a b;//两个数组用来存放大整数的每一位vectorint A, B;//将输入的大整数的每一位拆分后添加到数组//数字字符 - 0 即可得到数字字符对应的数字for (int i a.size() - 1; i 0; i--){A.push_back(a[i] - 0);}for (int i b.size() - 1; i 0; i--){B.push_back(b[i] - 0);}//对两个大整数做判断确保是大数 - 小数if (cmp(A, B)){//用一下大整数加法的接口并且用C接收最终结果vectorintC sub(A, B);cout 相减的结果;//输出结果for (int i C.size() - 1; i 0; i--){printf(%d, C[i]);}cout endl;}else{//用一下大整数加法的接口并且用C接收最终结果//如果B A交换位置传参即可最后输出数据的时候加上负号vectorintC sub(B, A);cout 相减的结果;//输出结果cout -;for (int i C.size() - 1; i 0; i--){printf(%d, C[i]);}cout endl;}}int main() {//大整数的减法test02();system(pause);return 0; }
http://www.w-s-a.com/news/683446/

相关文章:

  • 免费聊天不充值软件windows优化大师下载安装
  • 网站优化的关键词自己怎么做外贸网站空间
  • 现在建设的网站有什么劣势温州互联网公司
  • 重庆自助企业建站模板淘宝关键词top排行榜
  • 平邑网站制作买高端品牌网站
  • 深圳建网站三千网站安全代维
  • 西宁市精神文明建设网站装饰设计甲级资质
  • 做教育行业营销类型的网站徐州做网站多少钱
  • 临沂品牌网站制作企业网站建设搜集资料
  • wordpress注册验证码手机网站优化
  • 往建设厅网站上传东西做衣服的教程网站有哪些
  • 网上商城网站设计免费咨询口腔科医生回答在线
  • 南京网站c建设云世家 s浏览器
  • 如何做镜像别人网站wordpress菜单对齐修改
  • 长春网站建设net企业公示信息查询官网
  • 金鹏建设集团网站可在哪些网站做链接
  • 电子产品网站开发背景网站关键词优化方案
  • 建网站论坛wordpress提交数据库错误
  • 国内网站建设公司开源网站系统
  • 网站开发公司上大连网站建设流程图
  • 银川网站seo宁波网
  • 个人备案网站会影响吗网站添加 备案
  • 网站建设与电子商务的教案关于旅游网站建设的方案
  • 电子商务网站建设设计原则找做网站找那个平台做
  • 天津高端品牌网站建设韶关网站建设墨子
  • Wordpress多站点为什么注册不了2008iis搭建网站
  • 天津高端网站制作建网站的公司服务
  • 温州网站推广优化类似淘宝的网站怎么做的
  • 网站建设实训考试什么网站做玩具的比较多
  • 上海网站建设特点怎样给公司做一个网站做推广