日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

十进制大数的加法运算

發布時間:2023/12/18 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 十进制大数的加法运算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

輸入文件的第一行為一個整數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

總結

以上是生活随笔為你收集整理的十进制大数的加法运算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。