Python全WA, 求助
  • 板块P1464 Function
  • 楼主Mandel520
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/1/17 18:40
  • 上次更新2023/10/28 12:07:31
查看原帖
Python全WA, 求助
472628
Mandel520楼主2022/1/17 18:40

以下是我写的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)))  #输出答案
2022/1/17 18:40
加载中...