2017华为机试题--水仙花数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2017华为机试题--水仙花数相关的知识,希望对你有一定的参考价值。
等了一个月终于等到华为给安排的实习生在线机试,把自己做的三道题记录了一下,也方便日后复习。这篇是第一题,没有什么特别的难度,经典的水仙花数题。
题目描述:水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。(例如:13+53+33=153),要求:输出1000范围内所有水仙花数及水仙花数之和。
输入描述:无
输出描述:1000以内所有水仙花数及总和。
输出例子:
第1个水仙花数:xxx
第2个水仙花数:xxx
第3个水仙花数:xxx
...
水仙花数总和为:xxx
1 public class Main { 2 public static boolean judge(int x) { 3 int cpx = x; 4 int n = ("" + x).length(); 5 int s = 0; 6 while(x > 0) { 7 int y = x % 10; 8 s += (int)(0.5 + Math.pow(y, n)); 9 x /= 10; 10 } 11 return cpx == s; 12 } 13 public static void main(String[] args) { 14 int cnt = 0, s = 0; 15 for(int i = 100; i <= 1000; i++) { 16 if(judge(i)) { 17 s += i; 18 System.out.println("第" + (++cnt) + "个水仙花数:" + i); 19 } 20 } 21 System.out.println("水仙花数总和为:" + s); 22 } 23 }
以上是关于2017华为机试题--水仙花数的主要内容,如果未能解决你的问题,请参考以下文章