环境
java
前言
今天面试遇到的,一开始,我觉得有更好的方法,但是回来一想,其实面试题上已是最好的;
(面试题上,是代码补充题)
代码
我记得题目是:找出三位数中,除以11的商等于各个数幂的和(例如:550
除以11
为50
)
各个数的幂之和:5*5+5*5+0*0=50
;
public static void main(String[] args) {
int s = 0;
int n = 0,i;
List<Integer> generNum = generNum(3);
Integer start = generNum.get(0);
Integer end = generNum.get(1);
int temp = 0;
for (n = start; n <= end; n++) {
i=n;
s = 0;
while (i != 0) {
temp = i%10;
s+= temp*temp;
i/=10;
}
if (n/11 == s) {
System.out.println(n +"---" + s);
break;
}
}
System.out.println(s);
}
public static List<Integer> generNum(int num){
double startPow = Math.pow(10, num-1);
double endPow = Math.pow(10, num);
return Arrays.asList(Double.valueOf(startPow).intValue(), Double.valueOf(endPow).intValue()-1);
}
上面的代码,我自己改写成更通用的;