`
dearbaba2011
  • 浏览: 6761 次
社区版块
存档分类
最新评论

C语言趣味程序百例精解之JAVA实现(83):卡布列克常数

 
阅读更多

C语言趣味程序百例精解之JAVA实现:



public class Test83{
  public static void main(String args[]){
     new Test83(). KaBuLieKe83(4321,0);
   }
        
    /**  
     * 83。卡布列克常数,挺好玩,实现一下  
     */  
    public void KaBuLieKe83(int n, int count) {  
        int cha = getTheMaxOrMin(n, 1) - getTheMaxOrMin(n, 0);  
        System.out.println(count + ":" + getTheMaxOrMin(n, 1) + "-"  
                + getTheMaxOrMin(n, 0) + " = " + cha);  
        count++;  
        if (n == 6174) {  
            System.out.println("I did it 6174");  
        } else {  
            KaBuLieKe83(cha, count);  
        }  
    }  
  
    /**  
     * 获取重新排列后最大的数,如2310,得到3210,暂时只要四位  
     */  
     public int getTheMaxOrMin(int n, int maxOrMin) {  
        if (n < 1000 || n > 9999)  
            return -1;  
        int a = getThe(n, 4);  
        int b = getThe(n, 3);  
        int c = getThe(n, 2);  
        int d = getThe(n, 1);  
  
        int temp = 0;  
        int[] list = new int[] { a, b, c, d };  
        for (int i = 0; i < 4; i++) {  
            for (int j = i; j < 4; j++) {  
                if (maxOrMin == 1 ? (list < list[j]) : (list > list[j])) {  
                    temp = list;  
                    list = list[j];  
                    list[j] = temp;  
                }  
            }  
        }  
        return list[0] * 1000 + list[1] * 100 + list[2] * 10 + list[3];  
    }  
    /**  
     * 获取N右数第i位  
     */  
    public int getThe(int num, int i) {  
        if (i > getBitCount(num) || i < 1)  
            return -1;  
        return (num % ((int) Math.pow(10, i))) / (int) Math.pow(10, i - 1);  
    }  
  
    /**  
     * 获取一个数的位数  
     */  
    public int getBitCount(int n) {  
        int i = 1;  
        while (n / 10 > 0) {  
            i++;  
            n /= 10;  
        }  
        return i;  
    }  
}
C:\bat>java Test83
0:4321-1234 = 3087
1:8730-378 = 8352
2:8532-2358 = 6174
3:7641-1467 = 6174
I did it 6174

分享自:http://blog.csdn.net/dearbaba2011/article/details/6927515

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics