华为上机测试题(水仙花数升级版-java)

PS:这题满分100,没有做对,大家帮忙看看问题在哪

/*
 * 题目:水仙花数升级版
 * 描述: 水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)
给你A和B,求[A,B]区间内有多少个水仙花数
 
题目类别: 循环,查找,枚举,位运算
难度: 中级
分数: 100
运行时间限制: 无限制
内存限制: 无限制
阶段: 应聘考试
输入: 两个正整数,用空格隔开,保证数字都小于等于1000000。
 
输出: 一个数字,表示[A,B]区间内的水仙花数个数
 
样例输入: 100 1000
 
样例输出: 4
 
答案提示: 100~1000的水仙花数有:153,370,371,407
 */

 1 import java.util.Scanner;
 2
 3 public class Main {
 4
 5     public static void main(String[] args) {
 6
 7         int a = 0;
 8         int b = 0;
 9         int count = 0;
10
11         Scanner s = new Scanner(System.in);
12         String str = s.nextLine();
13         String[] strArray = str.split(" ");
14         a = Integer.parseInt(strArray[0]);
15         b = Integer.parseInt(strArray[1]);
16         s.close();
17         if((a < 100 || a > 1000000) || (b < 100 || b > 1000000))
18         {
19             throw new RuntimeException();
20         }
21
22         count = getNum(a, b);
23
24         System.out.println(count);
25     }
26
27     public static int getNum(int a, int b) {
28
29         int result = 0;
30
31         for(int i = a; i <= b; i++)
32         {
33             int m = i;
34             int tmp = 0;
35             int value = 0;
36
37             while(0 != m)
38             {
39
40                 tmp = m%10;
41                 value += Math.pow(tmp, 3);
42                 m /= 10;
43             }
44
45             if(value == i)
46             {
47                 result++;
48             }
49         }
50         return result;
51     }
52
53 }
时间: 2024-10-06 02:15:10

华为上机测试题(水仙花数升级版-java)的相关文章

华为上机测试题(及格分数线-java)

PS:自己写的,自测试OK,供大家参考. /* 描述:10个学生考完期末考试评卷完成后,A老师需要划出及格线,要求如下:(1) 及格线是10的倍数:(2) 保证至少有60%的学生及格:(3) 如果所有的学生都高于60分,则及格线为60分输入:输入10个整数,取值0~100输出:输出及格线,10的倍数输入样例:61 51 49 3020 10 70 80 90 99输出样例:50*/ import java.util.Scanner; public class passScore { static

华为上机测试题(地铁换乘-java)

PS:自己写的,自测试OK,供大家参考. /* 高级题样题:地铁换乘描述:已知2条地铁线路,其中A为环线,B为东西向线路,线路都是双向的.经过的站点名分别如下,两条线交叉的换乘点用T1.T2表示.编写程序,任意输入两个站点名称,输出乘坐地铁最少需要经过的车站数量(含输入的起点和终点,换乘站点只计算一次).地铁线A(环线)经过车站:A1 A2 A3 A4 A5 A6 A7 A8 A9 T1 A10 A11 A12 A13 T2 A14 A15 A16 A17 A18地铁线B(直线)经过车站:B1

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

等了一个月终于等到华为给安排的实习生在线机试,把自己做的三道题记录了一下,也方便日后复习.这篇是第一题,没有什么特别的难度,经典的水仙花数题. 题目描述:水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身.(例如:13+53+33=153),要求:输出1000范围内所有水仙花数及水仙花数之和. 输入描述:无 输出描述:1000以内所有水仙花数及总和. 输出例子: 第1个水仙花数:xxx 第2个水仙花数:xxx 第3个水仙花数:xxx ... 水仙花数总和为:xxx 1 p

算法之水仙花数(Java语言)

概述 在数论中,水仙花数(Narcissistic number),也被称为超完全数字不变数(pluperfect digital invariant, PPDI).自恋数.自幂数.阿姆斯壮数或阿姆斯特朗数(Armstrong number) ,用来描述一个N位非负整数,其各位数字的N次方和等于该数本身. 举例 例如153.370.371及407就是三位超完全数字不变数,其各个数之立方和等于该数: 153 = 13 + 53 + 33. 370 = 33 + 73 + 03. 371 = 33 

华为机试—水仙花数

判断给定正整数是不是"水仙花数"."水仙花数"是指一个三位数,其各位数字的立方和等于该数,例如153=1^3+5^3+3^3. 输入说明:有多组数据,每组数据为一个正整数n(0<n<65536,占一行),为0时表示输入结束. 输出说明:对于每一组数据,输出一个yes或no(表示该数是否为"水仙花数"). 输入样本: 153 111 370 422 0 输出样本: yes no yes no #include <iostream&

华为上机测试题(MP3光标移动-java)

PS:此题满分,可参考 描述: MP3 Player因为屏幕较小,显示歌曲列表的时候每屏只能显示几首歌曲,用户要通过上下键才能浏览所有的歌曲.为了简化处理,假设每屏只能显示4首歌曲,光标初始的位置为第1首歌. 现在要实现通过上下键控制光标移动来浏览歌曲列表,控制逻辑如下: 歌曲总数<=4的时候,不需要翻页,只是挪动光标位置. 光标在第一首歌曲上时,按Up键光标挪到最后一首歌曲:光标在最后一首歌曲时,按Down键光标挪到第一首歌曲. 其他情况下用户按Up键,光标挪到上一首歌曲:用户按Down键,光

华为上机测试题(Excel表格纵列字母数字转换-java)

PS:这是我刚做的一道题,题目不难,满分60,得分40,大家看看哪里有问题,欢迎提意见,感谢! /* * 题目:Excel表格纵列字母数字转换 * 描述: 在Excel中列的编号为A-Z,AA-AZ,BA-BZ.....CZB.....,请实现一个函数要求满足以下功能,将编号进行修改, * 如A-Z为1-26,然后翻转为两位,AA为27,AB为28.....ZZ为702,然后翻转为3位,AAA=703,AAB=704... 输入的字符串最长只有4. 题目类别: 字符串 难度: 初级 分数: 60

华为上机测试题(求亮灯数量-java)

PS:自己写的,自测试OK,供大家参考. /* 一条长廊里依次装有n(1 ≤ n ≤ 65535)盏电灯,从头到尾编号1.2.3.…n-1.n.每盏电灯由一个拉线开关控制.开始,电灯全部关着.有n个学生从长廊穿过.第一个学生把号码凡是1的倍数的电灯的开关拉一下:接着第二个学生把号码凡是2的倍数的电灯的开关拉一下:接着第三个学生把号码凡是3的倍数的电灯的开关拉一下:如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下.n个学生按此规定走完后,长廊里电灯有几盏亮着.注:电灯数和学生数一致

华为上机测试题(数字字符串转二进制-java)

PS:此题刚做完,满分,可参考 /*  * 题目:数字字符串转二进制 * 描述: 输入一串整数,将每个整数转换为二进制数,如果倒数第三个Bit是“0”,则输出“0”,如果是“1”,则输出“1”. 题目类别: 位运算 难度: 初级 分数: 60 运行时间限制: 10 Sec 内存限制: 128 MByte 阶段: 应聘考试 输入: 一串整数,长度小于1024,整数以空格隔开 输出: 1/0的整数串,空格隔开 样例输入: 240 0 样例输出: 0 0 答案提示: */ 1 import java.