Go語言實現兩個大數相加

2021-09-30 16:52:49 字數 1066 閱讀 7716

當兩個數和超過int64時,就不能用提供的相加操作,也就是 兩個很大的數相加時,怎樣求得結果。

思路也就是人計算兩個數時的思路,從末尾開始相加,該進製進製,並記錄下進製,從末尾往首計算;兩個長度不一的數,以短為準。

給出例項**(有待優化):

package main

import (

"bufio"

"fmt"

"os"

"strings"

)func multi(str1,str2 string) (result string)

var index1=len(str1)-1

var index2=len(str2)-1

var left int

for index1>=0 &&index2>=0else

c3:=(sum%10) + '0'

result = fmt.sprintf("%c%s",c3,result)

index1--

index2--

} for index1>=0 else

c3 := (sum % 10) + '0'

result = fmt.sprintf("%c%s",c3,result)

index1--

} for index2>=0 else

c3 := (sum % 10) + '0'

result = fmt.sprintf("%c%s",c3,result)

index2--

} if left == 1

return

}func main()

strslice:=strings.split(string(result),"+")

if len(strslice)!=2

strnumber1:=strings.trimspace(strslice[0])

strnumber2:=strings.trimspace(strslice[1])

fmt.println(multi(strnumber1,strnumber2))

}

兩個大數相加

兩個大數相加,暫時選擇簡單版本,使用兩個正整數相加,直接上 了,不再囉嗦了。include define maxnum 10000 bool inspectcharvalid char value void add char num1,char num2,char result int main i...

兩個大數相加

大數相加考慮到資料長度有限,因此採用字串的方式進行計算,還要考慮到進製的問題,看下 void big data add char num1,char num2 int intnum2 max len if num1 null num2 null length1 strlen num1 length2...

兩個大數相加

我們以前計算兩個整數的和,需要定義兩個整型變數來儲存兩個運算元。但是,若這兩個數大到任何整型型別都存放不下時,我們該怎麼來計算它們的和呢?這就是我們今天所討論的話題!解決思路 1 儲存問題 我們可以使用字串來儲存運算元,這樣不管運算元有多長都能放得下。2 計算問題 自定加法時,我們要考慮每一位的相加...