整体思路:循环拿这个数对10取余,再除以10,判断是不是0
while (num > 0) { int v = num%10; num /= 10; }
案例:
* 需求:在控制台输出所有的”水仙花数”
* 所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
* 举例:153就是一个水仙花数。
* 153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153
public static void main(String[] args) { int countAll = 0; // 水仙花数 for(int i=100; i<1000; i++) { int num = i; //数值 int result = 0; //各个位三次方相加后的数值 while (num > 0) { int v = num%10; result += v*v*v; num /= 10; } if (result == i) { countAll ++; System.out.println("第"+countAll+"个水仙花数为:"+result); } } }
//结果:
//第1个水仙花数为:153
//第2个水仙花数为:370
//第3个水仙花数为:371
//第4个水仙花数为:407