您好,登錄后才能下訂單哦!
?? ????
給你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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。