第五题笔试时候没过,刚写出来,不知道能不能A,分享一下思路吧 例子给的是 4 3 1 0 0 0 逐行算出来是 1 1 1 1 1 2 3 4 1 3 6 10 观察一下每行最后一个数 1 = 1 4 = 4/1 10 = (4*5)/(1*2) 再多写几行 1 4 10 20 1 5 15 35 1 6 21 56 再看 20 = (4*5*6)/(1*2*3) 35 = (4*5*6*7)/(1*2*3*4) 56 = (4*5*6*7*8)/(1*2*3*4*5) 到这里规律已经很明显了 再试一下另外的输入 4 5 0 1 0 0 0 1 1 1 = 1 0 1 2 3 = 3/1 0 1 3 6 = (3*4)/(1*2) 0 1 4 10 = (3*4*5)/(1*2*3) 0 1 5 15 = (3*4*5*6)/(1*2*3*4) 再试一组有两个非0数的 4 5 1 1 0 0 1 2 2 2 = 1+1 1 3 5 7 = 4+3 1 4 9 16 = 10+6 1 5 14 30 = 20+10 1 6 20 50 = 35+15 把1换成2试试 4 5 2 2 0 0 2 4 4 4 2 6 10 14 2 8 18 32 2 10 28 60 2 12 40 100 和上面一个例子比比,每行最后全是二倍 就写到这儿了,差不多就这样 整个公式是个求和公式 (1) res = 0 (2) i from 0 to N-1 (3)     res = (C(N+K-1-i)(K-1-i)*a[i] + res)%1000000007 (4) print res //算法第三行里的C是排列组合里的组合