程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

阿姆斯特朗数java

发布于2023-11-05 21:39     阅读(1149)     评论(0)     点赞(26)     收藏(1)


我在一些简单的代码上遇到了问题。我还没有看到我的代码问题出在哪里。当它应该返回 true时,它​​返回 false,因为 153 是一个阿姆斯特朗数字。

以下是我的代码:

public class Armstrong {

   static double nArms, unidad, decena, centena, aux;


   Armstrong(){

   }

   Armstrong(double nArms){
      this.nArms = nArms;
   }

   public boolean esArmstrong(double nArms){

    aux = nArms % 100;
    centena = nArms / 100;
    decena = aux / 10;
    unidad = aux % 10;


    this.nArms = Math.pow(unidad, 3) + Math.pow(decena, 3) +Math.pow(centena, 3);

    if(this.nArms == nArms){
        return true;
    }else{
        return false;
    }
}



public static void main(String[] args) {

    Armstrong arms = new Armstrong();


    System.out.println(arms.esArmstrong(153));



}

}

解决方案


double当您打算进行整数算术时,您正在使用。例如,当你写

centena = nArms / 100;

您正在进行浮点除法(并centena分配了值1.53),但您想要执行整数除法。请改用int, long(或 BigInteger)。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/677438/5a8a6d571b26293ef296/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

26 0
收藏该文
已收藏

评论内容:(最多支持255个字符)