java计算自幂数和水仙花数

 更新时间:2014年03月07日 09:15:15   投稿:zxhpj  
对于一个正整数而言,长度是n,如果它的各位上的数字的n次方之和正好等于它本身,那么我们称这样的数为自幂数,下面使用JAVA实现这个方法

(例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数)
n为1时,自幂数称为独身数。
n为2时,没有自幂数。
n为3时,自幂数称为水仙花数。
n为4时,自幂数称为玫瑰花数。
n为5时,自幂数称为五角星数。
n为7时,自幂数称为北斗七星数。
n为8时,自幂数称为八仙数。
n为9时,自幂数称为九九重阳数。
n为10时,自幂数称为十全十美数。

复制代码 代码如下:

/*
 * 自幂数
 * 自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。
 * (例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数)
 */
import java.util.Scanner;

public class 自幂数 {

 public static void main(String[] args) {
  Scanner input = new Scanner(System.in);
  System.out.println("请输入您所要查的自幂数位数:");
  int n = input.nextInt();// 接收数字位数
  // 定义一数字number,从10^(n-1)开始自加,到10^n结束
  switch (n) {
  case 1:
   System.out.println("独身数:");
   System.out.print("0" + "\t");
   break;
  case 2:
   System.out.println("两位自幂数:");
   System.out.println("没有自幂数!");
   break;
  case 3:
   System.out.println("水仙花数:");
   break;
  case 4:
   System.out.println("玫瑰花数:");
   break;
  case 5:
   System.out.println("五角星数:");
   break;
   case 7:
   System.out.println("北斗七星数:");
   break;
  case 8:
   System.out.println("八仙数:");
   break;
  case 9:
   System.out.println("九九重阳数:");
   break;
  case 10:
   System.out.println("十全十美数:");
   break;
  default:
   System.out.println("其它自幂数:");
   break;
  }
  for (int number = (int) Math.pow(10, n - 1); number < Math.pow(10, n); number++) {
   // 判断条件:数字number的位数为n
   if (String.valueOf(number).length() == n) {
    double num = 0;
    for (int i = 0; i < n; i++) {
     int temp = (int) (number / Math.pow(10, i)) % 10;
     num += Math.pow(temp, n);
    }
    if (number == num) {
     System.out.print(number + "\t");
    }
   }
  }
  input.close();
 }
}

相关文章

  • Redis Java Lettuce驱动框架原理解析

    Redis Java Lettuce驱动框架原理解析

    这篇文章主要介绍了Redis Java Lettuce驱动框架原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • Spring的Bean生命周期之BeanDefinition详解

    Spring的Bean生命周期之BeanDefinition详解

    这篇文章主要介绍了Spring的Bean生命周期之BeanDefinition详解,在spring bean创建过程 依赖 BeanDefinition 中的信息处理bean的生产,BeanDefinition 是 Spring Framework 中定义 Bean 的配置元信息接口,需要的朋友可以参考下
    2023-12-12
  • Spring MVC前后端的数据传输的实现方法

    Spring MVC前后端的数据传输的实现方法

    这篇文章主要介绍了Spring MVC前后端的数据传输的实现方法,需要的朋友可以参考下
    2017-10-10
  • Apache Arrow Parquet存储与使用

    Apache Arrow Parquet存储与使用

    这篇文章主要为大家介绍了Apache Arrow Parquet存储与使用原理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Java中的权限修饰符(protected)示例详解

    Java中的权限修饰符(protected)示例详解

    这篇文章主要给大家介绍了关于Java中权限修饰符(protected)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Java中的深拷贝(深复制)和浅拷贝(浅复制)介绍

    Java中的深拷贝(深复制)和浅拷贝(浅复制)介绍

    这篇文章主要介绍了Java中的深拷贝(深复制)和浅拷贝(浅复制)介绍,需要的朋友可以参考下
    2015-03-03
  • SpringBoot解析yml全流程详解

    SpringBoot解析yml全流程详解

    本文主要介绍了SpringBoot解析yml全流程详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 如何自动生成Mybatis的Mapper文件详解

    如何自动生成Mybatis的Mapper文件详解

    这篇文章主要给大家介绍了关于如何自动生成Mybatis的Mapper文件的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Mybatis具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • Java中的异常Exception详细解析

    Java中的异常Exception详细解析

    这篇文章主要介绍了Java中的异常Exception详细解析,Java语言中,将程序执行中发生的不正常情况称为"异常",(开发过程中的语法错误和逻辑错误不是异常),异常分为两大类,运行时异常和编译时异常,需要的朋友可以参考下
    2024-01-01
  • Java中基于推、拉模式的sentinel规则持久化详解

    Java中基于推、拉模式的sentinel规则持久化详解

    这篇文章主要介绍了Java中基于推、拉模式的sentinel规则持久化详解,推模式是sentinelDashboard 把规则推给Nacos,Nacos监听规则的变化推给微服务,拉模式是sentinelDashboard 把规则直接给微服务, Nacos定时的同步微服务端的规则,需要的朋友可以参考下
    2023-09-09

最新评论