提示:水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。
(例如:1^3 + 5^3+ 3^3 = 153)
package 面试;/*** 水仙花数* @author liugang* @create 2018/12/19 20:07**/ public class Shuixianhua {public static void main(String[] args) {int a,b,c;for(int i=100;i<999;i++){a = i%10;b = (i/10)%10;c = i/100;if (a*a*a+b*b*b+c*c*c==i){System.out.println("水仙花数:"+i);}}// int i = 137; // System.out.println(137%10); }}
怎么求个位数和十位数和百位数呢
a = Integer.parseInt(String.valueOf(i).substring(0,1));b = Integer.parseInt(String.valueOf(i).substring(1,2));;c = i%100;
我之前是这样弄,但发现只打印了407,取的有问题
c取的问题,个位数的值,应该是i%10这样取
int i=137; //取个位数 7 = 137-130;130是可以被10整除的,所以可以这样取 int c = i%10;
//取十位数 37 = 137-100;直接是先除10,降到两位数,然后再除10取模 int b = (i/10)%10;
//取百位数 直接除100就ok了; int a = i/100;