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

审题:

  • 水仙花数是一个三位数,所以只要判断100到999之间即可
  • 如何把单个数字拿出来

<做法一>用字符串把单个数字拿出来

package daffodil;

public class DaffodilDemo {
	
	//写一个方法判断是否是水仙花数
	public void decise() {
		
		//按照顺序把这个字符串的数字拿出来,然后把立方后的值加到number里面
		for (int i = 100; i <1000; i++) {
			//把number放入循环里,这样每次都会清零
			int number=0;
			
			//把数字放到字符串,有三种方式
			//String str1=""+i;
			//String str2=Integer.toString(i);
			String str=String.valueOf(i);
			
			for (int j = 0; j < 3; j++) {
				
				number+=Math.pow((Integer.valueOf(str.substring(j, j+1))), 3);
				
			}//for
			
			if(number==i) {
				
				System.out.println(i+"是水仙花数");
				
			}//if
			
		}//for

	}//decise
	
}//DaffodilDemo
package daffodil;
public class Test {

	public static void main(String[] args) {
		DaffodilDemo dd=new DaffodilDemo();
		dd.decise();
	}

}

<做法二>用取余的方式把单个数字拿出来

package daffodil;

public class DaffodilTwo {

	public static void main(String[] args) {
		
		int a,b,c;
		
		for (int i = 100; i <1000; i++) {
			
			//拿到百位数
			a=i/100;
			
			//两种方式拿到10位数
//			b= i % 100 / 10;
			b=i/10%10;
			
			//拿到个位数
			c=i%10;
			
			if(a*a*a+b*b*b+c*c*c==i) {
				System.out.println(i+"是水仙花数");
			}
		}
	}
}
发布了23 篇原创文章 · 获赞 2 · 访问量 1026

猜你喜欢

转载自blog.csdn.net/weixin_46101839/article/details/104498487
今日推荐