使用Java输出100~1000以内的水仙花数

水仙花数,即一个数的各个位数的立方之和等于这个数本身,例如153=1³+5³+3³。

首先声明三个变量,分别是百位,十位,个位的数字,a,b,c,因为范围是100~1000,所以设a=1,b=0,c=0。

int a = 1;
int b = 0;
int c = 0;

然后声明一个方法,如果是水仙花数(即100a+10b+c=a³+b³+c³),就输出这个数

public static void output(int a,int b,int c)
    {
        if((100*a+10*b+c)==(a*a*a+b*b*b+c*c*c))
        {
            System.out.println(100*a+10*b+c);
        }
    }

然后再用循环,来反复循环这个方法,并且在每一次循环后将个位数即c的值加一

while((100*a+10*b+c)<1000)
    {
        output(a,b,c);
        c++;
    }

但如果c加到10了,就得向b进1,同时c归零,b同理

if(c == 10)
    {
        c = 0;
        b++;
        if(b == 10)
        {
            b = 0;
            a++;
        }
    }

所以全部代码结合起来就是

public class Test
{
    public static void main(String[] args)
    {
        int a = 1;
        int b = 0;
        int c = 0;
        while((100*a+10*b+c)<1000)
        {
            output(a,b,c);
            c++;
            if(c == 10)
            {
                c = 0;
                b++;
                if(b == 10)
                {
                    b = 0;
                    a++;
                }
            }
        }

    }
    public static void output(int a,int b,int c)
    {
        if((100*a+10*b+c)==(a*a*a+b*b*b+c*c*c))
        {
            System.out.println(100*a+10*b+c);
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容