首页 > 其他分享 >水仙花数

水仙花数

时间:2023-11-03 20:45:37浏览次数:27  
标签:Scanner int pow range 水仙花 输入

水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。 本题要求编写程序,计算所有N位水仙花数。

输入格式:

输入在一行中给出一个正整数N(3≤N≤7)。

输出格式:

按递增顺序输出所有N位水仙花数,每个数字占一行。

输入样例:

3

输出样例:

153
370
371
407

解题思路:

  1.根据用户输入确定上下界,如输入3,则上届为999,下界为100

  2.调用自设函数会比使用Math调用pow方法用时更快

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int range = in.nextInt();
        int min = pow(10,range-1);
        int max = pow(10,range)-1;

        for(int i=min;i<=max;i++){
            int result = 0;
            for(int j=1;j<=range;j++){
                int n = i%pow(10,j)/pow(10,j-1);
                result += pow(n,range);
            }
            if(result == i){
                System.out.println(i);
            }
        }
    }
    public static int pow(int a,int b){
        int pow = 1;
        for(int j=1;j<=b;j++) {
            pow = pow * a;
        }
        return pow;
    }
}

标签:Scanner,int,pow,range,水仙花,输入
From: https://www.cnblogs.com/lavendery/p/17808346.html

相关文章

  • 水仙花数的打印(仅个人探索)
             详解在代码中已标示,数据范围可更改            //自己摸索的水仙花数(φ(◎ロ◎;)φ)#include<tgmath.h>#include<math.h>intmain(){ intsum=0; inti=0;//floor为向下取整符号,对数函数算出的指数即位数减一 头......
  • 7-2 水仙花数
    目录目录目录题目思路代码第一次未通过所有测试点评测详情分析原因第二次通过所有测试点测试详情题后小知识题目水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如153=1^3+5^3+3^3。本题要求编写程序,计算所有N位水仙花数。输入格式:输入在一行......
  • 送你一朵【水仙花数】
    文章目录前言一、题目二、思路分析:二、代码分析总结前言水仙花性喜温暖、湿润、排水良好的环境。在中国已有一千多年栽培历史,为传统观赏花卉。水仙花数(Narcissisticnumber)也被称为超完全数字不变数(pluperfectdigitalinvariant,PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗......
  • C语言-水仙花数
    计算100-1000内的水仙花#include<stdio.h>//水仙花数boolshuixianhua(intnum); intmain(){ inti; for(i=100;i<1000;i++){ if(shuixianhua(i)==1){ printf("%disashuixianhuanum.\n",i); } } return0; }boolshuixianhua(in......
  • 输出100-999之间所有的水仙花数。水仙花数指的是:各位数字立方和等于该数本身例如:153=1
    #include<stdio.h>intmain(){ inti,b0,b1,b2; intcount=0; for(i=100;i<1000;i++) { b0=i/100; b1=(i-b0*100)/10; b2=i%10; if(i==((b0*b0*b0)+(b1*b1*b1)+(b2*b2*b2))) {  count++;  printf("%d\n",i); } } printf("水仙花个数是:%d",co......
  • 用python求100到999以内的水仙花数(不用除法求各项)
    c=0forainrange(100,1000):forbinstr(a):a1=int(b)c=c+a1**3ifa==c:print(a)c=0输出结果为153370371407使用for循环来取数字中的每一位,不过数字要先化为str格式来取然后再化为int格式来赋值,要注意c的值每一次......
  • C语言求1000以内所有的水仙花数
    求1000以内所有的水仙花数何为水仙花数一个3位整数的各位数字的立方之和等于这个整数,称之为“水仙花数”。例如:153是水仙花数,因为153=1*1*1+5*5*5+3*3*3。先看代码#include<stdio.h>#include<math.h>intmain(){inti,a,b,c,d;for(i=100;i<1000;i++)......
  • 水仙花数
    水仙花数一个三位数,各位数分别是abc,则满足如下条件的数称为水仙花数:\[abc=a^3+b^3+c^3\]比如:\[153=1^3+5^3+3^3\]水仙花总数为153,370,371,407。精确地说,3位数的三次幂数就叫做水仙数。数较多的还有其他相应称呼,如:四个数字的四叶玫瑰数目共有3:1634,8208,9474......
  • 水仙花数
     进行水仙花数讲解水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数,水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身例如1^3+5^3+3^3=153;直接取值判断for循环i从100逐渐加一到1000 a取i的个位数b取i的十位数c取i的......
  • Python 实现水仙花数
    水仙花数水仙花数(Narcissisticnumber)也被称为超完全数字不变数(pluperfectdigitalinvariant,PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrongnumber),水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身。例如:1^3+5^3+3^3=153。根据定义可知:水......