大數據相加(轉載)

轉載: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.pswp.cn/news/259304.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/259304.shtml
英文地址,請注明出處:http://en.pswp.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;個人還是推薦用臺式比較好。工…