基础练习 特殊的数字

117 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

问题描述

  153是一个非常特殊的数,它等于它的每位数字的立方和,即153=111+555+333。编程求所有满足这种条件的三位十进制数。

输出格式

  按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。

注释:要实现其他位数的水仙花数,把下面a,b 初始值换成n位数即可

参考代码

public class Main {
	public static void main(String[] args) {
		int a=100;
		int b=1000;
		for(int i=a;i<b;i++){
			if(f(i)==1){
				System.out.println(i);
			}
		}
	}
	public static int f(int n){
		int t,temp,sum=0;
		int num=n;
		for(int i=0;i<3;i++){
			temp=num%10;
			sum+=temp*temp*temp;
			num=(num-temp)/10;
		}
		t=sum;
		if(t==n){
			return 1;
		}else{
			return -1;}
		
	}
}