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;
}
}