首页 > 解决方案 > 使用 Go 递归继续扫描输入

问题描述

我试图在不使用 for/while 循环和递归的情况下解决问题。该问题以这种格式为您提供输入:

2 4 3 -1 1 14 5 9 6 -53 32 16

其中“2”是查询的数量,每个查询包含数字列表的长度,后跟数字。我需要扫描所有信息并打印出数字的总和(在本例中为 3 + -1 + 1 + 14 和 9 + 6 + -53 + 32 + 16)。我正在尝试使用递归来扫描数字,但我似乎无法正确扫描它们。有没有

package main

import (
    "fmt"
)

func main() {
    var n int
    fmt.Scan(&n)
    recur(n)
}

func print_sum(l int, sum int) int {
    if l == 0 {
        return sum
    }
    var next_digit int
    fmt.Scan(next_digit)
    print_sum(l-1, sum+next_digit)
    return 0
}
func recur(queries int) {
    if queries == 0 {
        return
    }
    var next_len int
    fmt.Scan(next_len)
    print_sum(next_len, 0)
    recur(queries - 1)
}

标签: gorecursioninput

解决方案


我能够找出解决方案,如果有人想看,这里是代码:https ://github.com/allenye66/Recursive-Sum-of-Squares


推荐阅读