十进制大数的加法运算
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                十进制大数的加法运算
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                輸入文件的第一行為一個整數N,表示輸入文件中接下來有N組數據,沒組數據最多包含100行,每行有一個非常長的十進制整數組成,這個整數的長度不會超過100個字符,而且只包含數字,每組數據的最后一行為0,表示這組數據結束。
對輸入文件的每組數據,輸出他們的和。
此題不同于兩大數相加,是多個大數相加的問題,在求和時,有其獨到之處:豎式加法
#include<iostream> #include<stdio.h> #include<string.h> const int M=200; using namespace std; int main(){char buffer[M];int array[M][M],answer[M];int N,maxn,len,num_integers,carry,sum,digit,l;while(cin>>N){for(int k=1;k<=N;k++){maxn=-1;memset(array,0,sizeof(array));memset(answer,0,sizeof(answer));for(num_integers=0;num_integers<100;num_integers++ ){gets(buffer);if(strcmp(buffer,"0")==0) break;len=strlen(buffer);if(len>maxn)maxn=len;for(int j=len-1,m=0;j>=0;j--)array[num_integers][m++]=buffer[j]-'0';}carry=0;for(int i=0;i<maxn+2;i++){sum=carry;for(int j=0;j<num_integers;j++){sum+=array[j][i];digit=sum%10;carry=sum/10;answer[i]=digit;}}for(l=maxn+2;l>=0;l--)if(answer[l]!=0)break;while(l>=0){cout<<answer[l--];}cout<<endl;}}return 0; }?
轉載于:https://www.cnblogs.com/wintersong/p/4946974.html
總結
以上是生活随笔為你收集整理的十进制大数的加法运算的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 树链剖分 讲解+模板+习题
 - 下一篇: 深入理解 PHP7 中全新的 zval