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

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

分享到:
评论

相关推荐

    《C语言趣味程序百例精解》CHM V1.0.CHM

    《C语言趣味程序百例精解》是一本专注于C语言编程实践的教程,旨在通过丰富的实例帮助学习者深入理解和掌握C语言。CHM是Compiled Help Manual的缩写,是一种由微软开发的帮助文档格式,通常用于软件的用户手册或技术...

    C语言趣味程序百例精解

    《C语言趣味程序百例精解》是一本深入浅出的C语言编程实践教程,它以生动有趣的实例为载体,引领读者在解决实际问题中掌握C语言的核心概念和技术。本书旨在提升读者对C语言的理解与应用能力,通过一系列精心设计的...

    C语言趣味程序百例精解.rar

    《C语言趣味程序百例精解》是一本深入浅出的C语言学习教程,它将枯燥的编程理论与趣味性的实例相结合,旨在帮助初学者更好地理解和掌握C语言的基本概念和编程技巧。书中涵盖了大量的实例,这些实例既有趣又实用,...

    C语言趣味程序百例精解 宝贝啊!

    《C语言趣味程序百例精解》是一本深入浅出的C语言学习指南,它将枯燥的编程理论与趣味性的实例相结合,旨在帮助读者更好地理解和掌握C语言的精髓。本书覆盖了C语言的基础语法、控制结构、数据结构、函数、指针等核心...

    C语言趣味程序百例精解(算法与数据结构)

    C语言趣味程序百例精解 算法与数据结构 经典算法

    C语言趣味程序百例精解(PDF扫描版)

    《C语言趣味程序百例精解》是一本旨在帮助初学者和进阶者深入理解C语言编程的书籍,通过丰富的实例解析,使学习过程更具趣味性。这本书的PDF扫描版提供了一个方便的电子形式,让读者可以随时随地进行学习。下面我们...

    电子设计论文C语言趣味程序百例精解电子设计论文C语言趣味程序百例精解

    该资源只包含论文文档资料,电子设计论文C语言趣味程序百例精解该资源只包含论文文档资料,电子设计论文C语言趣味程序百例精解提取方式是百度网盘分享地址

Global site tag (gtag.js) - Google Analytics