java中求解水仙花数的算法思想是什么

java中求解水仙花数的算法思想是什么,第1张

水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。

从上面的定义可以看出,只要将给出的数字各个位数的数字分解出来,然后把个数字的3次方相加与原数相比是否相等即可判断出是否为水仙花数,给你一段源码,是求100~1000内的水仙花数,有注释,希望对你有帮助:

public class Wflower {

public static void main(String[] args) {

int a=0,b=0,c=0;

Systemoutprintln("水仙花数是:");

for (int i = 100; i < 1000; i++) //遍历所有3位数

{

a = i/100; //获取3位数中百位的数

b=i%100/10; //获取3位数中十位的数

c=i%100%10; //获取3位数中个位的数

a = a a a; //计算第一位数的立方

b = b b b; //计算第二位数的立方

c = c c c; //计算第3位数的立方

if ((a + b + c) == i) //如果符合水仙花数

Systemoutprint(" "+i);

}

}

}

public class Yugi {

    public static void main(String[] args){

        for(int i = 100; i < 1000; i++){

            var b = i / 100;

            var s = i % 100 / 10;

            var g = i % 10;

            if(b  b  b + s  s  s + g  g  g == i){

                Systemoutprintln(i);

            }

        }

    }

}

这个超级简单,10分钟搞定

public class Test {

    

    public static void checkNumber( int inputNumber ){

        int ones = inputNumber %10; //分解个位数

        int tens = inputNumber /10 %10; //分解十位数

        int hundreds = inputNumber /100; //分解百位数

        if( TestgetCubicNumber(ones) + TestgetCubicNumber(tens) + TestgetCubicNumber(hundreds) == inputNumber){

            Systemoutprintln( inputNumber + ",");

        }

    }

    

    public static int getCubicNumber( int input){

        return inputinputinput;

    }

    

    public static void main(String[] args){

        for( int i=100; i<1000; i++){

            TestcheckNumber(i);

        }

    }

}

输出:

153,

370,

371,

407,

100到1000间是水仙花数:

public class test {

public static void main(String[] args) {

for(int i=100; i<1000; i++){

int a = i/100;

int b = i/10%10;

int c = i%10;

if(Mathpow(a,3)+Mathpow(b,3)+Mathpow(c,3)==i)

Systemoutprintln(i+"是水仙花数");

}

}

}

运行结果:

153是水仙花数

370是水仙花数

371是水仙花数

407是水仙花数

100以内是没有水仙花数的!

水仙花数定义:水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)

//100-999之间的数

public class Demo {

public static void main(String [] a){

for (int i=101;i<999;i++){

String s=new Integer(i)toString();

int temp=0;

int n=slength();

for (int j=0;j<n;j++){

temp+=Mathpow(Characterdigit(scharAt(j), 10), n);

}

if(temp==i){

Systemoutprintln(i);

}

}

}

}

//不太清楚你所说的100间的斐波那契数是什么概念 是100以内的斐波那契数 还是100步以内的斐波那契数,下面给你写的程序里面n是步数

public class Demo {

public static void main(String[] args) {

int n = 20;

fib(n);

}

public static void fib(int n) {

long f1 = 1, f2 = 1, fn = 0;

if (n == 1)

Systemoutprint(f1);

if (n == 2)

Systemoutprint(f2);

else {

Systemoutprint(f1+" ");

Systemoutprint(f2+" ");

for (int i = 2; i < n; i++) {

fn = f1 + f2;

f1 = f2;

f2 = fn;

Systemoutprint(fn+" ");

}

}

}

}

以上就是关于java中求解水仙花数的算法思想是什么全部的内容,包括:java中求解水仙花数的算法思想是什么、编写一个Java程序输出水仙花数。水仙花数指个位数,十位数,百位数3个数的立方和等于这个数的本身。、设计一个Java程序,输出所有的水仙花数。所谓水仙花数,是一个三位数,其各位的立方和等于该数自身,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9861806.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存