查找数字的所有可能的非连续方块的总和

时间:2016-01-31 01:05:03

标签: algorithm

问题在于:给定一个数字n。找出可以用非连续和非重复的平方和写入的方式的数量。例如,n = 117,您可以通过3种方式编写它:

1^2 + 4^2 + 6^2 + 8^2 = 117
1^2 + 4^2 + 10^2 = 117
6^2 + 9^2 = 117

我考虑过使用动态编程,使用2D表格(每个维度都是sqrt(n)),但我无法想办法填写表格。如果有人能给我指示如何做到这一点,或者可能是另一种解决这个问题的方法,我会很感激。

1 个答案:

答案 0 :(得分:2)

提出如何解决这个问题的问题:

我看到两个主要任务:

  1. 查找与目标相加的任何方块序列
  2. 测试候选序列,特别排除连续。
  3. 您已经发现您不需要测试x> sqrt(n)。