【Android面试八股文】荣耀面试算法题:输出所有的水仙花数
水仙花数是指一个n位正整数,它的各位数字的n次幂之和等于它本身。例如,153是一个3位数,且153 = 1^3 + 5^3 + 3^3。
以下是在Android环境下输出所有水仙花数的Java代码示例:
public class Main {
public static void main(String[] args) {
for (int num = 101; num < 10000; num++) {
if (isNarcissisticNumber(num)) {
System.out.println(num);
}
}
}
private static boolean isNarcissisticNumber(int num) {
int temp = num;
int sum = 0;
int digits = 0;
while (temp > 0) {
digits++;
temp /= 10;
}
temp = num;
while (temp > 0) {
int digit = temp % 10;
sum += Math.pow(digit, digits);
temp /= 10;
}
return sum == num;
}
}
这段代码定义了一个isNarcissisticNumber
方法来检查一个数是否是水仙花数,然后在主函数中循环检查三位数以上的所有数,如果是水仙花数则打印出来。
评论已关闭