?? ????
給你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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。