初阶java16_ 求出0~999之间的所有“水仙花数”并输出。



//求出0~999之间的所有“水仙花数”并输出。
//(“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。)

import java.util.Scanner;
public class Demo_12{
	public static void main(String[] args) {
		System.out.println("请输入所求水仙花数范围: ");
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		
		for(int i = 1; i <= 999999;i++){
			//确定是几位数
			//123 -- 123/10=12 12/10=1 1/10=0
			
			int count = 0;
			int temp = i;//如果不存i,会使i=0
			while (temp != 0){
				count++;
				temp = temp / 10;
			}

			//求得每一位进行运算
			//123%10==3 123/10 ==12
			//12%10==2 12/10==1
			//1%10==1 1/10==0
			
			temp = i;
			int sum = 0;
			while (temp != 0){
				sum += Math.pow(temp%10 , count);
				temp = temp /10;
			}

			//判断是否相等
			if(sum == i){
				System.out.println(sum + " 水仙花数");
			}
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值