码迷,mamicode.com
首页 > 其他好文 > 详细

2017华为机试题--水仙花数

时间:2017-04-09 10:47:22      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:输出   i++   机试   等于   return   span   []   length   自己   

等了一个月终于等到华为给安排的实习生在线机试,把自己做的三道题记录了一下,也方便日后复习。这篇是第一题,没有什么特别的难度,经典的水仙花数题。

题目描述:水仙花数是指一个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华为机试题--水仙花数

标签:输出   i++   机试   等于   return   span   []   length   自己   

原文地址:http://www.cnblogs.com/Jocelyn66/p/6683796.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!