首页 > 代码库 > 华为上机测试题(水仙花数升级版-java)
华为上机测试题(水仙花数升级版-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 = http://www.mamicode.com/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 =http://www.mamicode.com/= i)46 {47 result++;48 }49 }50 return result;51 }52 53 }
华为上机测试题(水仙花数升级版-java)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。