hdu 1002 大數相加 高精度問題

2021-08-26 13:58:49 字數 851 閱讀 9180

話說當初在hdu上看過這題,只是那時盲目自信的以為很容易實現,所以跳了過去。 昨晚上準備搞這個演算法,滿懷信心的敲完**,卻總是有這樣那樣的問題。 雖然還是能做出來,但給本人的打擊還是蠻大的。

下面我寫一下我的思路。

先以字串的方式輸入兩"數".字串的每個元素代表乙個數字上的數字。

把字串的每個元素轉化成相應的數字儲存在乙個陣列中。

再模擬加法運算。

例如: 輸入789 56

0 9 8 9

+ 0 5 6

___________________

1 0 4 5

最高位都賦為0是因為 可能兩數相加後會多乙個數字。

最後輸出的時候判斷一下最高位是否為零就可以了。

//下面就是模擬加法運算的演算法 for(i=len;i>=0;i--)

所以,如果有喜歡搞演算法的朋友,歡迎交流演算法。^_^

2012. 01. 09

今天重新做了一下這題。得出點經驗,一道題不能只是ac了就不管了,一道已經ac的題 重做一遍還是能發現 很多東西。下面是我今晚寫的**。相比於以前還是有點進步的。

#include#include#define max 1000 int main() printf("case %d:\n",count++); //控制格式 printf("%s + %s = ",a,b); //控制格式 for(j=max;j>=0;j--) if(sum[j]) break; //去掉高位多餘的0 for(i=j;i>0;i--) printf("%d",sum[i]); //控制格式 printf("\n"); if(t!=0) printf("\n"); } } return 0; }

2012. 02 .02

hdu1002 大數相加

對於超過int和ll的範圍整數進行運算,想到用字串來轉換 注意點 1 轉換時的順序和輸出的順序 2 進製的標記 3 從字元轉為數字,0的ascii值為48 所以要減去48 include include include using namespace std char a 1000 b 1000 儲...

大數 大數相加(hdu1002)

題目描述 acm入門的第一題,兩個超出整型變數範圍的整數進行相加運算。一 因為整型裝不下,所以需要通過字串來存放。二 加法運算是從個位 末端 開始,並且涉及到進製。include includechar a 1000 b 1000 int main d 1000 為了更好的檢視,我們重新申請兩個陣列...

hdu 1002大數加法

include includevoid daoxu int str,int n 定義乙個倒序陣列的函式,n為陣列中元素個數 void daoxu int str,int n else 找出最長數 for int i 0 i 0 j printf for maxline 0 maxline print...