java 蓝桥杯算法训练 水仙花(题解)

试题 算法训练 水仙花

资源限制
时间限制:1.0s 内存限制:256.0MB
  水仙花数
问题描述
  判断给定的三位数是否 水仙花 数。所谓 水仙花 数是指其值等于它本身 每位数字立方和的数。例 153 就是一个 水仙花 数。 153=13+53+33
输入格式
  一个整数。
输出格式
  是水仙花数,输出"YES",否则输出"NO"(不包括引号)
样例输入
123
样例输出
NO
数据规模和约定
  一个三位的整数,否则输出"NO"
题解:
1.用求余求出最后一位数
2.然后除10,将已经求的最后一位去掉

import java.util.Scanner;

public class 水仙花 {

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);	//此类用于控制台读取数据
		int n=sc.nextInt();					//调用方法在控制台读取一个int的整数
		int a=n;	//用来取值
		int sum=0;	
		while(a>0)
		{
			int b=a%10;	//求余拿最后一个个位数
			b=b*b*b;
			sum+=b;
			a=a/10;		//例子:123 ,123/10=12,12/10=1,
		}
		if(sum==n)		//将个位数的立方和相加后和n比较
		{
			System.out.print("YES");
		}else
		{
			System.out.print("NO");
		}

	}

}

你可能感兴趣的:(蓝桥杯算法训练,算法,java)