给你A和B,求[A,B]区间内有多少个水仙花数
输入描述:
两个整数,用空格隔开,保证数字都小于等于1000000,否则返回0
输出描述:
一个数字,表示[A,B]区间内的水仙花数个数
分析得分点:
1、输入以空格隔开的两数字(需要解析,去空格)
2、数字要小于等于1000000,否则返回0
3、水仙花数的数字位数不确定
具体实现:
package demo; /** * @Author 小猪上天 * @Email zhuhuaikuan@gmail.com * @Data 2019/11/5 14:51 * @Version V1.0 * @description */ import java.util.Scanner; /** * 给你A和B,求[A,B]区间内有多少个水仙花数 * 输入描述: * 两个整数,用空格隔开,保证数字都小于等于1000000,否则返回0 * 输出描述: * 一个数字,表示[A,B]区间内的水仙花数个数 * */ public class demo1 { public static void main(String[] args) { String[] input = new Scanner(System.in).nextLine() .split(" "); int a = Integer.parseInt(input[0]); int b = Integer.parseInt(input[1]); if(a>b){ //判断输入两数字大小顺序 a=a+b; b=a-b; a=a-b; } // System.out.println(a); // System.out.println(b); if(b>1000000){ //数字大于1000000返回0 System.out.println(0); return; } int count=0; for(int number=a;number<=b;number++){ int temp = number; int sum = 0; for(int i=0;i<GetLength(number);i++){ sum += Math.pow(temp % 10, GetLength(number));//次方和相加 temp = temp / 10; } if (sum == number) {//判断是否相等 count++; } } System.out.println(count); } static int GetLength(int number){ //分析数字的具体位数 int i = 0; while (number / 10 > 0) { i++; number /= 10; } return i + 1; } }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。