有没有办法将任何数字表示为4个方格的总和.
例如,29可以表示为5 ^ 2 + 2 ^ 2 + 0 ^ 2 + 0 ^ 2
我尝试了下面的代码但是一些数字给出了15个例子,例如23 ^ 4 + 2 ^ 2 + 1 ^ 2 + 1 ^ 2 + 1 ^ 2
我试过的代码是:
x=0;
while(num!=0){
x=(int)Math.floor(Math.sqrt(num));
num=num-(x*x);
}
Run Code Online (Sandbox Code Playgroud)
与波希米亚人所说的不同,我用4个术语解决了23个如下:
23 = 3^2 + 3^2 + 2^2 + 1^2
Run Code Online (Sandbox Code Playgroud)
29如下:
29 = 4^2 + 3^2 + 2^2 + 0^2
Run Code Online (Sandbox Code Playgroud)
我的逻辑将从以下开始:
SQRT(29) = 5 - 1 = 4;这是我们的第一个任期.注意:这是为了您的简单案例.对于像323这样的复杂情况,这可能不起作用.
323 = 17^2 + 4^2 + 3^2 + 3^2
Run Code Online (Sandbox Code Playgroud)
请记住,当您找到x项时,该项的值小于或等于 x-1(上一个)项的值.
| 归档时间: |
|
| 查看次数: |
837 次 |
| 最近记录: |