【发布时间】:2018-04-07 17:27:51
【问题描述】:
首先:抱歉标题太长,但我发现很难用一句话来解释这个问题;)。是的,我也四处搜索(这里和谷歌),找不到一个像样的答案。
所以,问题是这样的:
数字 1-15 将被放入一个金字塔中(由一个数组表示),如下所示:
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
...除了不是真的像这样,因为这个金字塔是错误的。
每个数字“a”都应该由它下面的两个数字“b”和“c”定义:a = |b - c|。所以前两行是正确的,因为 |2-3| = 1。但是第三行当然是错误的,因为|4-5| = 1,但在这些数字之上还有 2。一开始,金字塔是空的,任务是寻找填充这个金字塔的算法。
对我来说,这似乎是一个可以使用某种Backtracking 算法解决的问题,尽管我还不确定递归的简单基本情况是什么。
尽管如此,我正在努力帮助我的侄子,在他学校的课堂上,他们还没有听说过任何关于递归的事情——更不用说回溯了。所以我目前正在尝试找到一种方法来解决这个金字塔的问题,使用某种嵌套的 for 循环或其他东西,但老实说......我目前正在碰壁,我想不出一个像样的解决方案。
有人有什么想法吗?
干杯,
/tehK
P.s:哦,我忘了...他们应该使用的语言是 C#(金字塔应该是一个数组),但我也可以处理任何其他语言,伪代码或你有的。这与编码无关,而与算法有关。
【问题讨论】:
标签: algorithm numbers backtracking