java:C201_06_05驗證卡布列克數
阿新 • • 發佈:2018-12-09
任意一個不是用完全相同數字組成的三位數,如果對它們的每位數字重新排序,組成一個較大的數和一個較小的數,然後用較大數減去較小數,差不夠三位數時補零,類推下去,最後將變成一個固定的數:495,這就是三位卡布列克常數
package _06_第六章函式;
import java.util.Scanner;
public class C201_06_05驗證卡布列克數 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.printf("輸入一個數:不能三位完全相同 " );
int num =scanner.nextInt();
while(num != 495){
num = sortNum(num);
}
}
/**
* 重組數後 算出最大值與最小值的差值
* @param num
* @return
*/
public static int sortNum(int num){
int b100 = num/100;
int b10 = num/10%10;
int b1 = num/1%10;
int Max,Min;
int max =Math.max(b100,Math.max(b10,b1));
int min =Math.min(b100,Math.min(b10,b1));
int mid=b100+b10+b1-max-min;
Max =max*100+mid*10+min*1;
Min =min*100+mid*10+max;
System.out.printf("%d - %d = %d \n",Max,Min,Max-Min);
return (Max-Min);
}
}
執行結果: 輸入一個數:不能三位完全相同 123 321 - 123 = 198 981 - 189 = 792 972 - 279 = 693 963 - 369 = 594 954 - 459 = 495