1. 程式人生 > >java:C201_06_05驗證卡布列克數

java:C201_06_05驗證卡布列克數

任意一個不是用完全相同數字組成的三位數,如果對它們的每位數字重新排序,組成一個較大的數和一個較小的數,然後用較大數減去較小數,差不夠三位數時補零,類推下去,最後將變成一個固定的數: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