給你A和B,求[A,B]區間內有多少個水仙花數
輸入描述:
兩個整數,用空格隔開,保證數字都小於等於1000000,不然返回0
輸出描述:
一個數字,表示[A,B]區間內的水仙花數個數java
分析得分點:ide
一、輸入以空格隔開的兩數字(須要解析,去空格)ip
二、數字要小於等於1000000,不然返回0input
三、水仙花數的數字位數不肯定it
具體實現:
io
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; } }