2012-03-08 54 views
2

我想寫計算高達100位的素數代碼,然後就可以進行基本的算術運算一樣+-*/。我做了一些研究,發現這可以通過使用字符串來執行。但是,如果我將這個數字存儲在一個字符串中,那麼我將如何對它執行操作?存儲號碼的C 100位++基本的算術功能

+5

提示:孩子們如何在學校進行算術運算?如果他們想要添加兩個數字,那麼他們從每個數字中取兩位數字,然後將它們相加,然後對所有數字對進行重複;在這個過程中,他們還會照顧第10位的數字,兩位數的總和。 – Nawaz 2012-03-08 06:22:49

+2

您可以使用整數數組做一個天真的實現,或者您可以使用現有的庫,如GMP。尋找任意精度算術。 – madth3 2012-03-08 06:25:13

+0

[Big Int Libs](https://www.google.com/search?q=C%2B%2B+BigInt&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox -a) – 2012-03-08 06:25:20

回答

0

這有點棘手,但你需要一次處理字符串塊。也就是說,從你的字符串中讀取幾個數字並將它們當作數字並對其進行部分算術運算。當你這樣做時,你將不得不記住攜帶數字。

乘法和除法更加複雜,但可以使用類似的系統。

+0

不可以使用C++以外的語言。部分生氣是什麼意思? – user1256356 2012-03-08 18:14:02

1

它不是最佳的性能,但如果要將它們保留爲字符串,則可以像在紙面上那樣進行。

12345 
    *54 
_______ 
    49380 
+617250 
_______ 
666630 

它應該是最簡單的設想,只要你的字符串類型允許就可以擴展。臨時號碼是必需的,但結果也不會超過8位。