求变量 s:="123" 中123相加求和的方法

china_wenya · 2017-07-28 09:01:54 · 1653 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2017-07-28 09:01:54 的主题,其中的信息可能已经有所发展或是发生改变。

变量 s:="123" 要得到s中字符串 1+2+3 的值


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1653 次点击  
加入收藏 微博
7 回复  |  直到 2017-08-05 10:30:45
sunanxiang
sunanxiang · #1 · 8年之前
package main

import (
    "strconv"
    "fmt"
)

func main() {
    var s = "987654321"
    var result = 0

    re, _ := strconv.Atoi(s)

    for i := re; i > 0; i /= 10 {
        result += i % 10
    }

    fmt.Println(result)
}
china_wenya
china_wenya · #2 · 8年之前

非常感谢!

qclaogui
qclaogui · #3 · 8年之前

另一种思路

package main

import (
    "fmt"
    "strconv"
)
func main() {
    s := "123"
    var total int
    for i :=0; i< len(s) ; i++  {
        b, _ := strconv.Atoi(string(s[i]))
        //log.Println(b)
        total += b
    }

    fmt.Printf("%T %v \n", total, total)
}
farmerx
farmerx · #4 · 8年之前
sunanxiangsunanxiang #1 回复

``` package main import ( "strconv" "fmt" ) func main() { var s = "987654321" var result = 0 re, _ := strconv.Atoi(s) for i := re; i > 0; i /= 10 { result += i % 10 } fmt.Println(result) } ```

这个是翻转吧

sunanxiang
sunanxiang · #5 · 8年之前
farmerxfarmerx #4 回复

#1楼 @sunanxiang 这个是翻转吧

不是翻转,先把字符串和数字转化,然后利用取余的方式对每位数字相加求和。

soou
soou · #6 · 8年之前

package main

import ( "fmt" "strconv" )

func main() { s:="123"

sum := 0
for k,_:=range s {
    n ,_:= strconv.Atoi(string(s[k]))
    sum+=n
}
fmt.Println(sum)

}

xiaodc
xiaodc · #7 · 8年之前

package main

import ( "fmt" )

func main() { var s = "123" sum := 0 for i := 0; i < len(s); i++ { sum += int(s[i] - 48) } fmt.Println(s, sum) }

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传