相关疑难解决方法(0)

将给定数字表示为四个方格的总和

我正在寻找一种算法,将一个给定的数字表示为(最多)四个方格的总和.

例子

       120 = 8 2 + 6 2 + 4 2 + 2 2
       6 = 0 2 + 1 2 + 1 2 + 2 2
       20 = 4 2 + 2 2 + 0 2 + 0 2

我的方法

取平方根并重复重复此余数:

while (count != 4) {
    root = (int) Math.sqrt(N)
    N -= root * root
    count++
} 
Run Code Online (Sandbox Code Playgroud)

但是当N为23时,即使有解决方案,这也会失败:

       3 2 + 3 2 + 2 2 + 1 2

  1. 有没有其他算法可以做到这一点?

  2. 它总是可能吗?

algorithm math

3
推荐指数
1
解决办法
2884
查看次数

标签 统计

algorithm ×1

math ×1