JAVA——水仙花数

JAVA——水仙花数主题:水仙花数(阿姆斯特朗数也就是俗称的水仙花数,是指一个三位数,其各位数字的立方和等于该数本身。例如:153=13+53+33,所以153就是一个水仙花数。)补充其他自幂数:一位自幂数:独身数三位自幂数:水仙花数(阿姆斯特朗数)四位自幂数:四叶玫瑰数五位自幂数:五角星数六位自幂数:六合数七位自幂数:北斗七星数八位自幂数:八仙数九位自幂数:九九重阳数十位自幂数:十全十美数…

主题:水仙花数(阿姆斯特朗数也就是俗称的水仙花数,是指一个三位数,其各位数字的立方和等于该数本身。例如:153=1^3 + 5^3 + 3^3,所以 153 就是一个水仙花数。)

补充其他自幂数:自幂数就是n位数,每位数的n次方相加等于本身。
一位自幂数:独身数
三位自幂数:水仙花数(阿姆斯特朗数)
四位自幂数:四叶玫瑰数
五位自幂数:五角星数
六位自幂数:六合数
七位自幂数:北斗七星数
八位自幂数:八仙数
九位自幂数:九九重阳数
十位自幂数:十全十美数

问题:求0到999之间的水仙花数并输出
思路:先求出有几位数(循环条件:这个数不为零,count计数,每次/10),再利用Math.pow(%取余次方)进行相加,若各个位上的数和为水仙花数则输出。(水仙花数为三位数,因此从99开始。)
代码:

public static void func(int n){ 
   
          for(int i=99;i<=n;i++){ 
   
              int sum=0;
              int count=0;
              int tmp=i;
              //1.求当前数字是几位数
              while(tmp!=0){ 
   
                  count++;
                  tmp/=10;
              }
              tmp=i;
              while(tmp!=0){ 
   
// Math.pow是double型,sum为int型,sum=sum+会带警告
                sum+=Math.pow(tmp%10,count);
                tmp=tmp/10;
              }
              if(sum==i){ 
   
                  System.out.println(i);
              }
          }
      }

  public static void main(String[]args){ 
   
          Scanner sc=new Scanner(System.in);
          int n=sc.nextInt();
          func(n);
  }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/29866.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注