按所需次数执行功能

计算给定整数的平方和,不包括任何负数。输入的第一行将是一个整数 N (1 <= N <= 100),表示要遵循的测试用例数。每个测试用例将包含一个整数 X (0 < X <= 100) 的行,然后是另一个由 X 个空格分隔的整数 Yn (-100 <= Yn <= 100) 组成的行。对于每个测试用例,计算整数的平方和,不包括任何负数,并在输出中打印计算的和。


注意:在收到所有输入之前,不应有输出。注意 2:不要在测试用例解决方案之间放置空行。注3:从标准输入获取输入,输出到标准输出。


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


根据输入的测试用例,下面的“我面临的问题” 'square' 函数没有执行所需的次数。为了满足特定要求,我不允许使用“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))

}


萧十郎
浏览 109回答 2
2回答

弑天下

这是一个使用递归的实现:package mainimport "fmt"func testCase(N int) {&nbsp; &nbsp; if N <= 0 {&nbsp; &nbsp; &nbsp; &nbsp; return&nbsp; &nbsp; }&nbsp; &nbsp; var X int&nbsp; &nbsp; fmt.Scanf("%d", &X)&nbsp; &nbsp; fmt.Println(sumOfSquare(X))&nbsp; &nbsp; testCase(N-1)}func sumOfSquare(X int) int {&nbsp; &nbsp; if X == 0 {&nbsp; &nbsp; &nbsp; &nbsp; return 0&nbsp; &nbsp; }&nbsp; &nbsp; var Y int&nbsp; &nbsp; fmt.Scanf("%d", &Y)&nbsp; &nbsp; if Y > 0 {&nbsp; &nbsp; &nbsp; &nbsp; return Y*Y + sumOfSquare(X-1)&nbsp; &nbsp; }&nbsp; &nbsp; return sumOfSquare(X-1)}func main() {&nbsp; &nbsp; var N int&nbsp; &nbsp; fmt.Scanf("%d", &N)&nbsp; &nbsp; testCase(N)}这是一个示例输出:$ go run main.go2 4 3 -1 1 14 5 9 6 -53 32 162061397

米琪卡哇伊

我在 python 中使用递归有这个程序,但在 go-lang 中没有。这是代码def squaresum(counter,alist):if counter==0:&nbsp; &nbsp; return 0else:&nbsp; &nbsp; if int(alist[counter-1])<0:&nbsp; &nbsp; &nbsp; &nbsp; return 0 + squaresum(counter-1, alist)&nbsp; &nbsp; else:&nbsp; &nbsp; &nbsp; &nbsp; return int(alist[counter-1])**2 + squaresum(counter-1,alist)def testcase(a):&nbsp; &nbsp; if a==0:&nbsp; &nbsp; &nbsp; &nbsp; return&nbsp; &nbsp; terms = int(input())&nbsp; &nbsp; nums = input()&nbsp; &nbsp; list1 = nums.split()&nbsp; &nbsp; print(squaresum(terms,list1))&nbsp; &nbsp; testcase(a-1)&nbsp; &nbsp;&nbsp;if __name__=='__main__':&nbsp; &nbsp; casecount = int(input())&nbsp; &nbsp; testcase(casecount)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go