题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

C语言实现

#include<stdio.h>
 
int main()
{
    int i,x,y,z;
    for(i=100;i<1000;i++)
    {
        x=i%10;
        y=i/10%10;
        z=i/100%10;
        
        if(i==(x*x*x+y*y*y+z*z*z))
        printf("%d\n",i);
        
    }
    return 0;
}

Java

public class Demo13 {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        int a,b,c;
        for(int i=100;i<1000;i++) {
            a = i/100;
            b =i/10%10;
            c =i%10;
            if(a*a*a+b*b*b+c*c*c==i) {
                System.out.println(i);
            }
        }

    }

}

结果
153
370
371
407

最后编辑:2020年08月01日 ©著作权归作者所有

发表评论