笔试的时候思路出了问题没有做出来,一直死循环,没有用main方法调试(哭)
/** * 找到比输入的整数大的下一个水仙花数 * @param n int整型 输入的整数 * @return long长整型 */ public static long nextNarcissisticNumber (int n) { if(n<9) return n+1; int count,flower,temp; int j = 0; while(true) { temp = n+(++j); count = 0; flower = 0; // 判断是几位数 while(temp!=0) { temp = temp/10; count++; } temp = n+j; // 计算,判断当前数是否为水仙花数,如果是则跳出while循环 for(int i=0;i<count;i++,temp=temp/10) flower += Math.pow(temp%10,count); if(flower==n+j) break; } return flower; }
考后重新整理思路写了上述解法,还是比较暴力,希望有大佬交流一下更高级的解法
全部评论
(2) 回帖