小编Gre*_*reg的帖子

在Go中使用大整数值?(ParseInt只转换为"2147483647"?)

如何在Go中将一长串数字(50位)转换为整数?

我得到以下代码的输出:

number = 2147483647
Run Code Online (Sandbox Code Playgroud)

err = strconv.ParseInt:解析"37107287533902102798797998220837590246510135740250":值超出范围

它似乎只能将数字转换为2147483647.

package main

import "fmt"
import "io/ioutil"
import "strings"
import "strconv"

var (
        number int64
)

func main() {
    fData,err := ioutil.ReadFile("one-hundred_50.txt")
    if err != nil {
            fmt.Println("Err is ",err)
        }   
    strbuffer := string(fData)
    lines := strings.Split(strbuffer, "\n")

    for i, line := range lines {
        fmt.Printf("%d: %s\n", i, line)
        number, err := strconv.Atoi(line)
        fmt.Println("number = ", number)
        fmt.Println("err = ", err)
    }   
}
Run Code Online (Sandbox Code Playgroud)

go

14
推荐指数
1
解决办法
6813
查看次数

strings.Split in Go

文件names.txt由以下形式的许多名称组成:

"KELLEE","JOSLYN","JASON","INGER","INDIRA","GLINDA","GLENNIS"
Run Code Online (Sandbox Code Playgroud)

有谁知道如何分割字符串,以便它是由逗号分隔的个别名称?

KELLEE,JOSLYN,JASON,INGER,INDIRA,GLINDA,GLENNIS
Run Code Online (Sandbox Code Playgroud)

下面的代码用逗号分割,并在名称周围留下引号,拆分的转义字符是什么".可以在一个Split语句中完成,拆分","并将逗号分开吗?

package main

import "fmt"
import "io/ioutil"
import "strings"

func main() {
        fData, err := ioutil.ReadFile("names.txt")  // read in the external file
    if err != nil {
        fmt.Println("Err is ", err)     // print any error
    }
    strbuffer := string(fData)  // convert read in file to a string

    arr := strings.Split(strbuffer, ",")

    fmt.Println(arr)

}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,这是Project Euler问题#22的一部分.http://projecteuler.net/problem=22

string go

12
推荐指数
2
解决办法
2万
查看次数

去大.用递归的因子

我正在尝试实现这段代码:

func factorial(x int) (result int) {
  if x == 0 {
    result = 1;
  } else {
    result = x * factorial(x - 1);
  }
  return;
}
Run Code Online (Sandbox Code Playgroud)

作为一个big.Int,以使其对更大的x值有效.

以下为fmt.Println(factorial(r))返回值0

阶乘7应该是5040?

关于我做错了什么的任何想法?

package main

import "fmt"
import "math/big"

func main() {
        fmt.Println("Hello, playground")

    //n := big.NewInt(40)
    r := big.NewInt(7)

    fmt.Println(factorial(r))

}

func factorial(n *big.Int) (result *big.Int) {
    //fmt.Println("n = ", n)
    b := big.NewInt(0)
    c := big.NewInt(1)

    if n.Cmp(b) == -1 {
        result = big.NewInt(1)
    }
    if n.Cmp(b) == 0 …
Run Code Online (Sandbox Code Playgroud)

go

11
推荐指数
2
解决办法
5144
查看次数

标签 统计

go ×3

string ×1