方法的创建和调用相关习题(Java实现)

1.1、创建方法求两个数的最大值max2,随后再写一个求3个数的最大值的函数max3。
​ 要求:在max3这个函数中,调用max2函数,来实现3个数的最大值计算。

import java.util.Scanner;

public class Test {
    //创建方法求两个数的最大值max2,随后再写一个求3个数的最大值的函数max3。
    //​ 要求:在max3这个函数中,调用max2函数,来实现3个数的最大值计算
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要比较的三个数");
        int num1 = scanner.nextInt();
        int num2 = scanner.nextInt();
        int num3 = scanner.nextInt();
        System.out.println(max3(num1,num2,num3));

    }

    private static int max3(int num1,int num2,int num3) {
        int tem = max2(num1, num2);
        int max = 0;
        if (num3 > tem) {
            max = num3;
        } else {
            max = tem;
        }
        return max;
    }

    private static int max2(int num1, int num2) {
        int max = 0;
        if (num1 > num2) {
            max = num1;
        } else {
            max = num2;
        }
        return max;
    }
}

2.调整数组顺序使得奇数位于偶数之前。调整之后,不关心大小顺序。

public class Test {
    //调整数组顺序使得奇数位于偶数之前。调整之后,不关心大小顺序。
    public static void main(String[] args) {
        //比较两个数组中的元素
        int[] arr ={1,2,4,3,5,6,8,7,9};
        int cur = 0;
        int temp = 0;
        int prev = cur + 1;
        while (prev < arr.length) {
            //1.如果 cur 指的数是奇数,cur 和 prev 直接后移一位
            if (arr[cur] % 2 != 0) {
                cur++;
                prev++;
            }
            //2.如果 cur 指的数是偶数
            if (arr[cur] % 2 == 0) {
                //a)如果此时 prev 指的是奇数,直接交换
                //b)如果此时 prev 指的是偶数, prev 后移一位继续判断是奇数还是偶数,循环上述操作
                if (arr[prev] % 2 == 0) {
                    prev++;
                }
                if (arr[prev] % 2 != 0) {
                    temp = arr[cur];
                    arr[cur] = arr[prev];
                    arr[prev] = temp;
                    cur++;
                    prev++;
                }
            }
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]);
        }
        System.out.println();
    }
}

3、求 N 的阶乘

import java.util.Scanner;

public class Test {
    //求 N 的阶乘 。
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入N");
        int N = scanner.nextInt();
        int num = 0;
        int mul = 1;
        for (int i = 1; i <= N; i++) {
            mul *= i;
        }
        System.out.println(mul);
    }
}

4.求1!+2!+3!+4!+…+n!的和

import java.util.Scanner;

public class Test {
    //求1!+2!+3!+4!+........+n!的和
    public static void main(String[] args) {
        int mul = 1;
        int sum = 0;
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入n");
        int n = scanner.nextInt();
        for (int i = 1; i <= n; i++) {
            mul *= i;
            sum += mul;
        }
        System.out.println(sum);
    }
}

5.求斐波那契数列的第n项。(迭代实现)

import java.util.Scanner;

public class Test {
    //求斐波那契数列的第n项。(迭代实现)
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入n");
        int n = scanner.nextInt();
        System.out.println(sum(n));
    }

    public static int sum(int n) {
        if (n == 1 || n == 2) {
            return 1;
        } else {
            return sum(n - 2) + sum(n - 1);
        }
    }
}

6.有一组数据,只有一个数字是出现一次,其他是两次,请找出这个数字。

public class Test {
    //有一组数据,只有一个数字是出现一次,其他是两次,请找出这个数字。
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 2, 1, 4};
        System.out.println(check(arr));
    }

    private static int check(int[] arr) {

        int ret = 0;
        for (int cur = 0; cur < arr.length; cur++) {
            ret ^= arr[cur];//一个数两次异或同一个数,这个数值不变
        }
        return ret;
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值