为了账号安全,请及时绑定邮箱和手机立即绑定

按所需次数执行功能

按所需次数执行功能

Go
萧十郎 2022-05-18 09:35:59
计算给定整数的平方和,不包括任何负数。输入的第一行将是一个整数 N (1 <= N <= 100),表示要遵循的测试用例数。每个测试用例将包含一个整数 X (0 < X <= 100) 的行,然后是另一个由 X 个空格分隔的整数 Yn (-100 <= Yn <= 100) 组成的行。对于每个测试用例,计算整数的平方和,不包括任何负数,并在输出中打印计算的和。注意:在收到所有输入之前,不应有输出。注意 2:不要在测试用例解决方案之间放置空行。注3:从标准输入获取输入,输出到标准输出。规则 使用 Go 编程语言编写您的解决方案 您的源代码必须是单个文件(主包) 不要使用任何 for 语句 您只能使用标准库包根据输入的测试用例,下面的“我面临的问题” 'square' 函数没有执行所需的次数。为了满足特定要求,我不允许使用“for”语句。请帮帮我。语言是围棋。package mainimport "fmt"var s []intfunc square(l int) {    i := 0    sum := 0Square:    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))}
查看完整描述

2 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

这是一个使用递归的实现:


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


查看完整回答
反对 回复 2022-05-18
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

我在 python 中使用递归有这个程序,但在 go-lang 中没有。这是代码


def squaresum(counter,alist):

if counter==0:

    return 0

else:

    if int(alist[counter-1])<0:

        return 0 + squaresum(counter-1, alist)

    else:

        return int(alist[counter-1])**2 + squaresum(counter-1,alist)



def testcase(a):

    if a==0:

        return

    terms = int(input())

    nums = input()

    list1 = nums.split()

    print(squaresum(terms,list1))

    testcase(a-1)

    


if __name__=='__main__':

    casecount = int(input())

    testcase(casecount)


查看完整回答
反对 回复 2022-05-18
  • 2 回答
  • 0 关注
  • 108 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信