PS:這題滿(mǎn)分100,沒(méi)有做對(duì),大家?guī)兔纯磫?wèn)題在哪
/** 題目:水仙花數(shù)升級(jí)版 * 描述: 水仙花數(shù)是指一個(gè) n 位數(shù) ( n≥3 ),它的每個(gè)位上的數(shù)字的 n 次冪之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)給你A和B,求[A,B]區(qū)間內(nèi)有多少個(gè)水仙花數(shù)題目類(lèi)別: 循環(huán),查找,枚舉,位運(yùn)算 難度: 中級(jí) 分?jǐn)?shù): 100 運(yùn)行時(shí)間限制: 無(wú)限制 內(nèi)存限制: 無(wú)限制 階段: 應(yīng)聘考試 輸入: 兩個(gè)正整數(shù),用空格隔開(kāi),保證數(shù)字都小于等于1000000。輸出: 一個(gè)數(shù)字,表示[A,B]區(qū)間內(nèi)的水仙花數(shù)個(gè)數(shù)樣例輸入: 100 1000樣例輸出: 4答案提示: 100~1000的水仙花數(shù)有: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 = 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 == i)46             {47                 result++;48             }49         }50         return result;51     }52     53 }新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注