2017/12/27java基础学习——代码错误分析
[Q]:水仙花数定义:
1. 一定是3位数
2. 每一位的立方,加起来恰好是这个数本身,比如153=1*1*1+5*5*5+3*3*3
寻找所有的水仙花数
[A]:
public class HelloWorld{ public static void main(String[] args) { int min = 100; int max = 999; for (int i = min; i <= max; i++) { int single_digit = i % 100; int ten_digit = i / 10 % 10; int hundreds_digit = i / 100; int sum = single_digit * single_digit * single_digit + ten_digit * ten_digit * ten_digit + hundreds_digit * hundreds_digit *hundreds_digit; if(sum == i){ System.out.println("i = " +i); } } } }
第七行里,求得的是两位数[即十位与个位],代码显然是错误的,应修改为:
int single_digit = i % 10;