zoukankan      html  css  js  c++  java
  • java 程序算法题-面试笔试题(二)

    /**
         * 求某两个数的最大公因数和最小公倍数
         */
        @Test
        public void testMaxYinshu() {
            int a = 36;
            int b = 16;
            int x = a;
            int y = b;
            if (x < y) {
                int k = y;
                y = x;
                x = k;
            }
            while (y != 0) {
                if (x == y) {
                    break;
                }
                int k = y;
                y = x % y;
                x = k;
            }
            System.out.println(a + "和" + b + "最大公因数是:" + x);
            System.out.println(a + "和" + b + "最小公倍数是:" + a * b / x);
        }
    
        @Test
        public void testCountString() {
            String s = "HHhh  hhhh 123&&";
            int a = 0;
            int b = 0;
            int c = 0;
            int d = 0;
            int e = 0;
            char[] chars = s.toCharArray();
            for (int i = 0; i < chars.length; i++) {
                //判断是否是数字
                if (Character.isDigit(chars[i])) {
                    a++;
                    //判断是否是字母
                } else if (Character.isLetter(chars[i])) {
                    //判断是否是大写字母
                    if (Character.isUpperCase(chars[i])) {
                        b++;
                    } else {
                        e++;
                    }
                    //判断是否是空格
                } else if (Character.isSpaceChar(chars[i])) {
                    c++;
                } else {
                    d++;
                }
            }
            System.out.println("数字个数:" + a);
            System.out.println("大写字母个数:" + b);
            System.out.println("小写字母个数:" + e);
            System.out.println("空格个数:" + c);
            System.out.println("特殊个数:" + d);
        }
    
        /**
         * 实现3+33+333+3333+...位数由循环次数决定
         */
        @Test
        public void testAddCount() {
            int a = 3;
            int b = a;
            int sum = a;
            for (int i = 0; i < 2; i++) {
                a = (a * 10) + b;
                System.out.println(a);
                sum = sum + a;
            }
            System.out.println(sum);
        }
    
        /**
         * 二分查找
         */
        @Test
        public void testBinarySerach() {
            int[] ints = {1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 34, 56, 78, 90};
            int low = 0;
            int hight = ints.length - 1;
            while (low <= hight) {
                int mid = (low + hight) / 2;
                if (ints[mid] == 12) {
                    System.out.println(ints[mid]);
                    break;
                } else if (ints[mid] < 12) {
                    low = mid + 1;
                } else {
                    hight = mid - 1;
                }
            }
    
        }
    /**
    * 求某两个数的最大公因数和最小公倍数
    */
    @Test
    public void testMaxYinshu() {
    int a = 36;
    int b = 16;
    int x = a;
    int y = b;
    if (x < y) {
    int k = y;
    y = x;
    x = k;
    }
    while (y != 0) {
    if (x == y) {
    break;
    }
    int k = y;
    y = x % y;
    x = k;
    }
    System.out.println(a + "和" + b + "最大公因数是:" + x);
    System.out.println(a + "和" + b + "最小公倍数是:" + a * b / x);
    }

    @Test
    public void testCountString() {
    String s = "HHhh hhhh 123&&";
    int a = 0;
    int b = 0;
    int c = 0;
    int d = 0;
    int e = 0;
    char[] chars = s.toCharArray();
    for (int i = 0; i < chars.length; i++) {
    //判断是否是数字
    if (Character.isDigit(chars[i])) {
    a++;
    //判断是否是字母
    } else if (Character.isLetter(chars[i])) {
    //判断是否是大写字母
    if (Character.isUpperCase(chars[i])) {
    b++;
    } else {
    e++;
    }
    //判断是否是空格
    } else if (Character.isSpaceChar(chars[i])) {
    c++;
    } else {
    d++;
    }
    }
    System.out.println("数字个数:" + a);
    System.out.println("大写字母个数:" + b);
    System.out.println("小写字母个数:" + e);
    System.out.println("空格个数:" + c);
    System.out.println("特殊个数:" + d);
    }

    /**
    * 实现3+33+333+3333+...位数由循环次数决定
    */
    @Test
    public void testAddCount() {
    int a = 3;
    int b = a;
    int sum = a;
    for (int i = 0; i < 2; i++) {
    a = (a * 10) + b;
    System.out.println(a);
    sum = sum + a;
    }
    System.out.println(sum);
    }

    /**
    * 二分查找
    */
    @Test
    public void testBinarySerach() {
    int[] ints = {1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 34, 56, 78, 90};
    int low = 0;
    int hight = ints.length - 1;
    while (low <= hight) {
    int mid = (low + hight) / 2;
    if (ints[mid] == 12) {
    System.out.println(ints[mid]);
    break;
    } else if (ints[mid] < 12) {
    low = mid + 1;
    } else {
    hight = mid - 1;
    }
    }

    }
  • 相关阅读:
    javaweb基础笔记(2)
    javaweb基础笔记(1)
    java基础笔记(11)
    java基础笔记(10)
    java基础笔记(9)
    洛谷 P2648 赚钱
    AcWing 走廊泼水节 题解
    对于有向图多个点到一个点的求法
    分层图的四倍经验
    洛谷 P4822 [BJWC2012]冻结
  • 原文地址:https://www.cnblogs.com/blackCatFish/p/13597384.html
Copyright © 2011-2022 走看看