根据需要的次数执行功能

问题描述 投票:-1回答:1

计算给定整数的平方和,不包括任何负数。输入的第一行将是整数N(1 <= N <= 100),表示要遵循的测试用例数。每个测试用例将由具有整数X(0

注意:在收到所有输入之前,应该没有输出。注意2:请勿在测试用例解决方案之间插入空白行。注3:从标准输入中获取输入,然后输出到标准输出。

规则使用Go编程语言编写解决方案您的源代码必须是一个文件(包主文件)不要使用任何for语句您只能使用标准库软件包

“我面临的问题”根据输入的测试用例,下面的“平方”功能未按要求的次数执行。为了满足特定要求,我不允许使用“ for”语句。请帮帮我。语言就是去。

package main

import "fmt"

var s []int

func square(l int) {
    i := 0
    sum := 0
Square:

    if l > 0 {
        s[i] = s[i] * s[i]
        sum = sum + s[i]
        i++
        l--
        goto Square

    }
    fmt.Println(sum)

}

func myfunc(a int) {
Here:
    if a > 0 {
        var b int
        fmt.Scanln(&b)
        if b > 0 {
            s = append(s, b)
        }
        a--
        goto Here
    }

}

func main() {
    var a int
    fmt.Scanln(&a)
TestCases:
    if a > 0 {
        var T int
        fmt.Scanln(&T)
        myfunc(T)
        a--
        goto TestCases
    }
    square(len(s))
}

function go iteration standards goto
1个回答
1
投票
package main import "fmt" func testCase(N int) { if N <= 0 { return } var X int fmt.Scanf("%d", &X) fmt.Println(sumOfSquare(X)) testCase(N-1) } func sumOfSquare(X int) int { if X == 0 { return 0 } var Y int fmt.Scanf("%d", &Y) if Y > 0 { return Y*Y + sumOfSquare(X-1) } return sumOfSquare(X-1) } func main() { var N int fmt.Scanf("%d", &N) testCase(N) }

这是示例输出:

$ go run main.go
2 4 3 -1 1 14 5 9 6 -53 32 16
206
1397
© www.soinside.com 2019 - 2024. All rights reserved.