Python全WA, 求助

P1464 Function

Mandel520 @ 2022-01-17 18:40:41

以下是我写的python程序, 可过样例, 但一交上去就全部WA了, 恳请各位大佬解答

ans = [[[0] * 25 for i in range(25)] for j in range(25)] #储存答案的数组

def ans_recur(x, y, z):  #递归函数
    if x <= 0 or y <= 0 or z <= 0:  #三个数中任意一个小于0, return 1
        return 1
    if x > 20 or y > 20 or z > 20:  #三个数中任意一个小于20, 则将三个数全都设为20
        x, y, z = 20, 20, 20
    if ans[x][y][z] > 0:      #如果之前的运算中已经求出了答案, 直接输出
        return ans[x][y][z]
    if x < y and y < z:       #根据题目中的公式进行计算
        ans[x][y][z] = ans_recur(x, y, z - 1) + ans_recur(x, y - 1, z - 1) + ans_recur(x, y - 1, z)
        return ans[x][y][z] 
    else:                     #根据题目中的公式进行计算
        ans[x][y][z] = ans_recur(x - 1, y, z) + ans_recur(x - 1, y - 1, z) + ans_recur(x - 1, y, z - 1) - ans_recur(x - 1, y - 1, z - 1)
        return ans[x][y][z]

while True:
    a, b, c = map(int, input().split())
    if a == -1 and b == -1 and c == -1: break  #三个数都是-1, 退出程序
    print("w({0}, {1}, {2}) = {3}".format(a, b, c, ans_recur(a, b, c)))  #输出答案

by danzy @ 2022-03-11 21:21:15

不能用[0]* 25 还是要用range循环赋值


|