아래의 소스 testBigInt.go 는 GMP 사용 예제 for C 의 testGMP.c 를 Go 언어 용으로 수정한 것이다.
Go 언어는 (C 언어와 달리) 긴 자리 정수 타입을 빌트인 패키지로 내장하고 있다. 긴 자리 정수 타입을 사용하기 위해서는 (소스 파일의 선두에) "math/big" 패키지를 미리 임포트(수입)해야 한다.
- /*
- * Filename: testBigInt.go
- *
- * Compile: go build testBigInt.go
- * Execute: ./testBigInt
- *
- * or
- *
- * Execute without compiling: go run testBigInt.go
- *
- * Output: 2470450
- */
- package main
- import (
- "fmt"
- "math/big"
- )
- func foo(param *big.Int, n int64) *big.Int{
- var i int64
- var r *big.Int = big.NewInt(1)
- r.Mul(param, big.NewInt(n))
- for i = 1; i < n; i++ {
- r.Add(r, big.NewInt(i*7))
- }
- return r
- }
- func main() {
- var r *big.Int;
- /// var n *big.Int = big.NewInt(123456)
- var n *big.Int = big.NewInt(1)
- n.SetInt64(123456)
- r = foo(n, 20)
- fmt.Printf("%s\n", r)
- }
실행> go run testBigInt,go
2470450
컴파일> go build testBigInt.go
실행> ./testBigInt
2470450
'프로그래밍 > Go' 카테고리의 다른 글
대화형 모드의 진법(radix) 변환 예제 with Go (0) | 2012.06.22 |
---|---|
황금비율(golden ratio) 구하기 with Go (0) | 2012.06.20 |
현재 시각 알아내기 with Go (0) | 2012.06.17 |
조립제법(Horner의 방법) 예제 with Go (0) | 2012.06.16 |
80컬럼 컨솔에 19단표 출력하기 예제 with Go (0) | 2012.06.16 |