数学宝塔有递归解决从最顶上走到最底层,每次只能走到下一层的左边或右边的数字,求出使所走到的所有数字之和为60的途径. 7 4 6 6 9
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 10:16:27
数学宝塔有递归解决从最顶上走到最底层,每次只能走到下一层的左边或右边的数字,求出使所走到的所有数字之和为60的途径. 7 4 6 6 9
数学宝塔有递归解决
从最顶上走到最底层,每次只能走到下一层的左边或右边的数字,求出使所走到的所有数字之和为60的途径. 7 4 6 6 9 3 6 3 7 1 2 5 3 2 8 5 9 4 7 3 2 6 4 1 8 5 6 3 3 9 7 6 8 4 1 52 5 7 3 5 7 8 4 2
7
4 6
6 9 3
6 3 7 1
2 5 3 2 8
5 9 4 7 3 2
6 4 1 8 5 6 3
3 9 7 6 8 4 1 5
2 5 7 3 5 7 8 4 2
你能用C语言表达出来吗.加上注释,加到200分,
数学宝塔有递归解决从最顶上走到最底层,每次只能走到下一层的左边或右边的数字,求出使所走到的所有数字之和为60的途径. 7 4 6 6 9
你这是 acm 的题吧? 如果数据规模不是很大的话,做个递归,顺便打表.动态规划 打表的 数据:data[m][n][x] ,m代表行,n代表i行第一个,x代表和(取值1~60), data代表到m行n个值为x时,路径个数.
递归方程就是 data[m][n][x] = (data[m+1][n][x - value[m][n]]) + (data[m+1][n+1][x-value[m][n]).初值全部位0, 只有最下面一行部分为1,就是比如那个左下角2,可以设置 data[8][0][2] = 1. 含义了解吧. 然后递归就好. 打表的话,复杂度不会超过 9*9*60,事实上很多值不用算,会快很多.
如果不是acm…… 那我再想想其他办法.
再不懂,先去看看【动态规划】是什么.