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
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)
- 2 回答
- 0 关注
- 108 浏览
添加回答
举报