Java学习记录(三):简单算法

Java学习(三):简单算法实现

1、给定一个数组,针对其中的每一个元素若为偶数则缩小两倍,若为奇数则缩小扩大两倍

int[] numbers = new int[]{
   1,2,3,4,5,6,7,8,9,10};

for (int i = 0; i < numbers.length; i++) {
   
    if (numbers[i] % 2 == 0) {
   
        numbers[i] /= 2;
    } else {
   
        numbers[i] *= 2;
    }
}

for (int i = 0; i < numbers.length; i++) {
   
    System.out.println(numbers[i]);
}

2、给定一个整型数组,输出他的最大值

int[] numbers = new int[]{
   33,5,22,44,55};

int maxNumber = numbers[0] ;
for (int number : numbers) {
   
    if (number > maxNumber) {
   
        maxNumber = number;
    }
}

System.out.println("max number is " + maxNumber);

3、给定一个随机整数列表,输出他的总和以及平均值

private static void arraySumTest(){
   
    Random rand = new Random();
    int[] numbers = new int[10];

    for (int i = 0; i < numbers.length; i++) {
   
        numbers[i] = rand.nextInt(100) + 1;
        System.out.print(numbers[i] + " ");
    }

    int sum = 0;
    int avg = 0;
    for (int i = 0; i < numbers.length; i++) {
   
        sum += numbers[i];
    }
    avg = sum / numbers.length;

    System.out.println("\nsum is " + sum + ", avg is " + avg);
}

4、给定一个整型数组,将整个数组倒序排列

int[] numbers = new int[]{
   1,2,3,4,5,6,7,8,9,10};

for (int i = 0; i < numbers.length/2; i++) {
   
    int mapIndex = numbers.length - 1 - i;
    int temp = numbers[i];
    numbers[i] = numbers[mapIndex];
    numbers[mapIndex] = temp;
}

for (int number : numbers) {
   
    System.out.print(number + " ");
}

5、给定一个整型数组,随机打乱整个数组

int[] numbers = new int[]{
   1,2,3,4,5,6,7,8,9,10};
Random random = new Random();

for (int i = 0; i < numbers.length; i++) {
   
    int randIndex = random.nextInt(numbers.length);
    int temp = numbers[i];
    numbers[i] = numbers[randIndex];
    numbers[randIndex] = temp;
}

for (int number : numbers) {
   
    System.out.print(number + " ");
}

6、一辆公交车,最开始上面人数为0,在第一个站上了1个人,第二个站上了2个人但下了1个人,第三个站上了2人下了1人,在第四个站下了1人,最后上了1人,问总共有多少人?

public class CountPeopleOnBus {
   
    public static void main(String[] args) {
   
        int peopleOnBus = 0;

        peopleOnBus = peopleOnBus + 1;
        peopleOnBus = peopleOnBus + 2 - 1;
        peopleOnBus = peopleOnBus + 2 - 1;
        peopleOnBus = peopleOnBus - 1;
        peopleOnBus = peopleOnBus + 1;

        System.out.println(peopleOnBus);
    }
}

7、一男一女相亲,如果你的时尚程度大于对方的时尚程度(1-10),那么就相亲成功,否则就相亲失败。

import java.util.Scanner;

public class Dating {
   

    public static void main(String[] args) {
   
        Scanner sc = new Scanner(System.in);

        System.out.println("Input your fashion level (1-10):");
        int boy_fashion_level = sc.nextInt();
        while(true){
   
            if (boy_fashion_level > 10 || boy_fashion_level < 1) {
   
                System.out.println("You have entered an invalid fashion level, reInput:");
                boy_fashion_level = sc.nextInt();
            }
            else{
   
                break;
            }
        }


        System.out.println("Input your partner's fashion level (1-10):");
        int girl_fashion_level = sc.nextInt();
        while(true){
   
            if (girl_fashion_level > 10 || girl_fashion_level < 1) {
   
                System.out.println("You have entered an invalid fashion level, reInput:");
                girl_fashion_level = sc.nextInt();
            }
            else {
   
                break;
            }
        }


        if (boy_fashion_level > girl_fashion_level) {
   
            System.out.println("Dating Success!");
        }
        else {
   
            System.out.println("Dating Failed!");
        }
    }
}

8、不使用乘法、除法,给定一个被除数和除数,计算商和余数

import java.util.Scanner;

public class Division {
   
    public static void main(String[] args) {
   
        Scanner sc = new Scanner(System.in);

        System.out.println("Input dividend number:");
        int dividend = sc.nextInt();
        System.out.println("Input divisor number:");
        int divisor = sc.nextInt();

        int count = 1;
        int remainder = dividend - divisor;
        while (remainder >= divisor) {
   
            remainder = remainder - divisor;
            count++;
        }

        System.out.println("quotient: " + count);
        System.out.println("remainder: " + remainder);
    }
}

9、输入一个整数,判断他是否是回文数,比如12321就是回文数,1234就不是回文数。

import java.util.Scanner;

public class LoopNumber {
   
    public static void main(String[] args) {
   
        Scanner sc = new Scanner(System.in);

        /*
        * 方法一
        */
        /*
        System.out.println("Input a number:");
        String number_str = sc.next();

        String number_reverse = "";
        for (int i = number_str.length()-1; i >= 0; i--){
            number_reverse += number_str.charAt(i);
        }

        if (number_reverse.equals(number_str)){
            System.out.println(number_str + " is a loop number.");
        }
        else {
            System.out.println(number_str + " is not a loop number.");
        }
        */

        // 方法二
        System.out.println("Input a number:");
        int number = sc.nextInt

你可能感兴趣的:(Java学习,java,学习,算法,开发语言,intellij-idea)