加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 有没有办法代表任何数字作为4个方块的总和?

发布时间:2020-12-14 17:47:48 所属栏目:Java 来源:网络整理
导读:有没有办法代表任何数字作为4个方格的总和. 例如29可以表示为5 ^ 2 2 ^ 2 0 ^ 2 0 ^ 2 我尝试了以下代码,但是一些数字给出5terms,例如23 ^ 2 2 ^ 2 1 ^ 2 1 ^ 2 1 ^ 2 我试过的代码是: x=0; while(num!=0){ x=(int)Math.floor(Math.sqrt(num)); num=num-(x*
有没有办法代表任何数字作为4个方格的总和.

例如29可以表示为5 ^ 2 2 ^ 2 0 ^ 2 0 ^ 2

我尝试了以下代码,但是一些数字给出5terms,例如23 ^ 2 2 ^ 2 1 ^ 2 1 ^ 2 1 ^ 2

我试过的代码是:

x=0;
 while(num!=0){
          x=(int)Math.floor(Math.sqrt(num));
         num=num-(x*x);        
}

解决方法

不像波希米亚人所说,我以四个方式解决了23个问题:
23 = 3^2 + 3^2 + 2^2 + 1^2

和29如下:

29 = 4^2 + 3^2 + 2^2 + 0^2

我的逻辑开始于:

>从数字的平方根开始 – 1.例如SQRT(29)= 5 – 1 = 4;这是我们的第一个任期.
>从点1获取值),将其平方并再次从点1中加上平方值,并查看它是否大于N.如果是,则将第二和项减1,并将其平方值加到值1).
>如果先前的平方值项总和小于N,则找到下一个值项,并重复2)直到所有4个项加起来为N.

注意:这是为了你的简单的情况.对于复杂情况,例如323,这可能不行.

323 = 17^2 + 4^2 + 3^2 + 3^2

请记住,当您找到x项时,该术语的值小于或等于x-1(上一个)术语的值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读