判斷一個整數,是否為水仙花數,指的是一個三位數,其各位上數字立方和等於其本身。例如153 = 1*1*1+3*3*3+5*5*5
//方法1 使用String字符串獲取每個位置上的數值
while(true){
System.out.println("請輸入一個三位數整數");
rawNum = sc.next();
myNum = Integer.parseInt(rawNum);
num1 = Integer.parseInt(String.valueOf(rawNum.charAt(0)));//獲取第1個位置上的數字
num2 = Integer.parseInt(String.valueOf(rawNum.charAt(1)));//獲取第2個位置上的數字
num3 = Integer.parseInt(String.valueOf(rawNum.charAt(2)));//獲取第3個位置上的數字
if ((num1*num1*num1+num2*num2*num2+num3*num3*num3)==myNum){
System.out.println(num1+""+num2+""+num3+ "是個水仙花數");
break;
}else{
System.out.println(num1+""+num2+""+num3+"不是水仙花數,請重新輸入");
}
}
//方法2 由於是三位整數,百位上的數就是三位數/100,十位數上的就是三位數%100/10,個位數的值就是三位數%10
while(true){
System.out.println("請輸入一個三位數整數");
rawNums = sc.nextInt();
num1 = rawNums / 100;
num2 = rawNums % 100 /10;
num3 = rawNums % 10;
if ((num1*num1*num1+num2*num2*num2+num3*num3*num3)==myNum){
System.out.println(num1+""+num2+""+num3+ "是個水仙花數");
break;
}else{
System.out.println(num1+""+num2+""+num3+"不是水仙花數,請重新輸入");
}
}