大数据相加(转载)

转载:http://www.du52.com/text.php?id=411

在这个大数据的年代里,我们不可避免会遇到两个超越正常数据类型(如int,long,long long)的整数相加。显然两个大数据已经不能使用传统的加号直接相加,但是相加的原理仍然是不变的,就是简单的同位相加,超9进1.接下来我们将叙述用数组保存的大数据相加的代码。

/* 大数相加:超越数据类型范围的也可以进行相加分析: 用一维数组解决 1.数据元素的输入 用getchar无限输入字符 ,从下标0开始 保存元素 保存顺序是高位在前,低位在后,输入123保存a1[0]=1....这里也要把字符转换为整形,关系 整数1+'0' ='1' 2.一但遇到进位问题,上面这种就会溢出,数据无法完全保存,所有 把上面的存储顺序改成是 低位在前,高位在后如输入123 a[0]=3,a[1]=2 3.相加操作 :把每一位进行相加 这里用已存在的数字对相加结果进行保存,输入的数可能长度不一,所有数组长度要取最输入最长的4.相加进位问题:因是每一位相加,结果可能会大于9,大于9的就要进行进位操作,其它的不变5.显示输出结果问题:可能会出现少位数或多位数的,这里就用一变量ncount解决 */
#include<iostream>
using namespace std;int main()
{int a1[100];int b1[100];int a[100]={0};int b[100]={0};int na ,nb;       //保存数组元素的长度 int ncount = 0;    //相加后的数组共有多少个元素 int i,j;i = 0;j = 0;输入数据// cout<<"请输入加数:";while ( (a1[i]=getchar()) !='\n' )   //下标小的保存高位 { a1[i] = a1[i]-'0';i++;}///转换存储顺序 na = i;    //保存数组中存入了多少个有效元素 na-1个 for (int k=0,i=na-1; i>=0; i--)  // //下标小的保存低位 {a[i] = a1[k];k++;}cout<<"输入被加数:";while ( (b1[j]=getchar()) !='\n' ){b1[j] = b1[j]-'0';j++;}nb = j;    //保存数组中存入了多少个有效元素 nb-1个///转换存储顺序 for (int k=0,j=nb-1; j>=0; j--)  // //下标小的保存低位 {b[j] = b1[k];k++;}// 取得保存相加结果数组的长度/* 如输入123+23 我们就要取大数字的位数作为 保存结果数组的小标 不这样就会丢失数据 */ int lengh ; //取数组元素最长的作为保存相加后的结果if (na>=nb){lengh = na;} else{lengh = nb;}// 开始执行加法操作for (int m=0; m<lengh; m++){a[m] = a[m] + b[m];   //两数进行相加  每一位相加 } ///进位处理 ////*如 98+7 就要进位 数据保存如下:a[0]=8 ,a[1]=9;  b[0]=7  执行上面的相加操作  结果为: a[0]=a[0]+b[0]=15 ,a[1]=a[1]+b[1] = 9+0=9下面为进位处理  lengh =2a[0]=15   a[1]=91. n=0 a[0]>9 需进位temp=15/10=1   a[1]=a[1]+temp =9+1=10   a[0]=15%10=52.n=1 a[1]=10>9 continuetemp = 10/10=1  a[2]=0+1=1   a[1]=10%10=03.n=2  等于lengh 所有退出 这时相加的结果为:a[0]=5  a[1]=0    a[2]=1  输出就是105 */for (int n=0; n<lengh; n++)  //进位处理 {if (a[n] >9){int temp = a[n]/10;a[n+1] = a[n+1] + temp;a[n]   = a[n]%10;ncount = lengh;      //进位的话 数组要多一位数字 ,实际上主要是判别是否是最后一位进位}else{ncount = lengh-1;    //不进位保存结果的数组长度就是 输入数字大的位数长 continue;     //不进位就往下走 } }//输出结果/// cout<<"相加结果是:";for (int i=ncount; i>=0; i--)  //ncout 解决了显示输出结果问题:可能会出现少位数或多位数 {cout<<a[i];}cout<<endl; system("pause");return 0;
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/259304.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微型计算机中使用的光盘应属于什么媒体,计算机应用基础练习题

计算机应用基础一、判断题1、微型机中硬盘工作时&#xff0c;应特别注意避免强烈震动【是】2、在Windows中&#xff0c;文件夹或文件的换名只有一种方法【否】3、用户在连接网络时&#xff0c;只可以使用域名&#xff0c;不可以使用IP地址【否】4、在WORD2007中&#xff0c;您可…

七天学会SALTSTACK自动化运维 (3)

七天学会SALTSTACK自动化运维 (3) 导读SLSTOP.SLSMINION选择器SLS文件的编译总结参考链接导读 SLS SLS (aka SaLt State file) 是 salkstack 中非常基础和重要的一种配置文件. 重要程度仅次于minion和 master 的主配置文件(或者说是一种数据结构&#xff0c;使用yaml编写), 因…

qt-embedded-linux-opensource-src-4.5.3移植到s3c6410

首先要有配置好的环境&#xff0c;本文使用的编译环境如下&#xff1a; 主机系统&#xff1a;Ubuntu 9.10 主机编译器&#xff1a;gcc 版本 4.4.1 交叉编译器&#xff1a;arm-linux-gcc-4.0.1 软件资源&#xff1a;qt-embedded-linux-opensource-src-4.5.3.tar.gz qt-x11-opens…

C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法

<p style"line-height: 19px; margin: 10px auto; color: rgb(75, 75, 75); font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;">有些成员变量的数据类型比较特别&#xff0c;它们的初始化方式也和普通数据类型的成员变量有所不同…

【Intellij Idea】设置JDK

1&#xff0c;File-->Project Structure 说明&#xff1a;可以设置整个工程的JDK&#xff0c;也设置每个modules的JDK,但是一般整个工程的JDK. 2&#xff0c;或者通过快捷键&#xff1a;ctrlaltshifts 转载于:https://www.cnblogs.com/august-shi/p/6655469.html

c#操作html dom元素,C#获取与修改HTML DOM元素信息

用C#和JavaScript交互首先要解决C#读取HTML DOM元素的问题。 在System.Windows.Browser命名空间下&#xff0c;有一个HtmlDocument、HtmlPage、HtmlElement等类&#xff0c;可以用来读取HTML DOM元素。其读取方法和JavaScript如出一辙。引用内容&#xff1a; //初始化一个docum…

Hibernate之工具类HibernateUtil

原创文章&#xff0c;转载请注明&#xff1a;Hibernate之工具类HibernateUtil By Lucio.Yang 1.最简单的工具类&#xff0c;实现SessionFactory的单例共享&#xff0c;session的管理 package com.cc.hibernate;import org.hibernate.Session; import org.hibernate.SessionFac…

c++读取文件–结束条件的判断

转载&#xff1a;http://blog.sina.com.cn/s/blog_623e3c050100neei.html 在使用C/C读文件的时候&#xff0c;一定都使用过eof&#xff08;&#xff09;这个函数来判断文件是否为空或者是否读到文件结尾了&#xff0c;也会在使用这个函数的过程中遇到一些问题&#xff0c;如不…

绘图用计算机配置要求,绘图笔记本电脑基本配置要求 绘图笔记本推荐

现在很多工业图、工程图都需要用电脑来话&#xff0c;比如CAD、PS、三维画图这些软件对电脑的配置要求还是比较高的&#xff0c;还有一些对色彩要求高的动画软件&#xff0c;那就更加需要配置了&#xff0c;下面小编就来简单说说绘图笔记本电脑最基本的配置要求以及绘图笔记本推…

关于dllimport的使用

最近做一个动态加载插件的项目&#xff0c;插件中的dll 主要是各厂商各型号的读卡器的通用类库&#xff0c;stdapi.dll&#xff0c;WltRS.dll&#xff0c;有的还有进一步封装的dll&#xff0c;主要是为了简化通用类库的操作。 这些类库都是用C语言&#xff0c;或者C来编写的&am…

如何在MVCsheet表单页面的后台取到页面自定义字段的值?

问题&#xff1a;<asp:HiddenField id"test" runat"server"/> 在前台加了这样一个隐藏元素&#xff0c;mvcsheet表单页面&#xff0c;如何在后台获取到值&#xff0c;直接使用 test.value一直是空的。 前台经过一系列判断处理写入该值&#xff0c;需…

BigDecimal.setScale 处理java小数点

BigDecimal.setScale()方法用于格式化小数点 setScale(1)表示保留一位小数&#xff0c;默认用四舍五入方式 setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位&#xff0c;如2.35会变成2.3 setScale(1,BigDecimal.ROUND_UP)进位处理&#xff0c;2.35变成2.4 setScale(1,B…

C++的字符串分割函数

转载&#xff1a;http://blog.csdn.net/shanzhizi/article/details/17189267 C的字符串没有分割函数&#xff0c;因此需要自己写方便使用。而受到开发工具的影响&#xff0c;有很多用起来比较麻烦啦&#xff0c;下面这个比较不错奥。 用STL进行字符串的分割 涉及到string类的…

计算机无法正常更新,无法完成更新正在撤销更改请不要关闭你的计算机如何修复...

我们电脑开机的时候可能会遇到各种问题&#xff0c;比如就有用户发现电脑开机的时候&#xff0c;一直提示无法完成更新正在撤销更改请不要关闭你的计算机&#xff0c;等待了很长时间也进不去系统&#xff0c;遇到这样的问题该怎么办呢&#xff1f;不用担心小编给大家支招&#…

水一篇

发件人标题发送时间处理系统通知您的博客申请已批准2013-10-15 13:58删除系统通知博客园博客申请通知2013-10-15 12:55删除系统通知您的博客申请未通过审批2013-10-13 11:21删除系统通知博客园博客申请通知2013-10-13 11:07删除系统通知您的博客申请未通过审批2013-10-13 11:06…

如何去掉jQWidgets中TreeGrid和Grid右下角的链接

关于如何去掉这个水印&#xff0c;这是官方的说法。 更新了jQWidgets版本&#xff0c;发现在使用过程中发现每次渲染完TreeGrid和Grid后会在表格右下角出现一个www.jqwidgets.com的span标签。 在相关的脚本中搜索www.jqwidgets.com相关的关键字都没有对应结果。于是准备从其父容…

华为2015年实习生招聘考试试题

第一题&#xff1a; 描述: 目描述&#xff1a; 编写一个函数&#xff0c;将字符串中的大写的字母(A~Z)挑出来&#xff0c;同时保留原字符串中的空格&#xff0c;将挑出的大写字母和空格按原始位置组成新的字符串。 例如&#xff1a; 1&#xff09;输入&#xff1a;AUStralia&…

【NOIP2011 Day 2】观光公交

【问题描述】 小城Y市&#xff0c;拥有n个景点。由于慕名而来的游客越来越多&#xff0c;Y市特意安排了一辆观光公交车&#xff0c;为游客提供更便捷的交通服务。观光公交车在第0分钟出现在1号景点&#xff0c;随后依次前往2、3、4……n号景点。从第i号景点开到第i1号景点需要D…

基本数据类型的自动装箱

这里以Integer类型举例&#xff1a; Integer a 1; a 2; 编译后.calss文件是这样的 Integer a Integer.valueOf(1); 自动装箱 a Integer.valueOf(a.intValue() 2); 自动拆箱&#xff0c;再自动装箱 转载于:https://www.cnblogs.com/feiZhou/p/9344494.html

自媒体和计算机相关吗,做自媒体,台式电脑跟笔记本电脑用哪个好呢?

四阿哥fly回答数&#xff1a;143 | 被采纳数&#xff1a;162019-06-29 12:16:21作为去年折腾了一年自媒体&#xff0c;各种情况遇到过&#xff0c;分享下台式电脑和笔记本到底哪个好&#xff1f;好在哪里&#xff1f;如果真的要选择&#xff0c;个人还是推荐用台式比较好。工…