/*
* 0-99共100个整数,放到一个数组中,位置是随机的
* 将其中一个数37,挑出来,换成不是这个数字的另一个数45
* 有一个数字是重复的,还有一个数字是没有的
* 将这个重复的数字找出来,用最快的方式
*/
public class Demo1 {
public static void main(String[] args) {
//定义一个100长度的数组
int[] arr = new int[100];
//从1-100初始化
for (int i = 0; i <100; i++) {
arr[i]=i;
}
//把37换成45,那么这100个数中,37是没有的,45是重复的
arr[37]=45;
//打乱数组的里面的值的位置,让位置随机
changePosition(arr);
//定义一个临时数组,那么里面的初始数都是0
int[] temp = new int[arr.length];
//遍历数组arr,以arr里面的值作为临时数组temp的索引
for(int i = 0;i<arr.length;i++){
//让临时数组temp对应的值都加1 ,这时候 temp的索引是0-99,temp对应索引37位置上就是0,对应45位置上就是2
temp[arr[i]]++;
//数值是2的则重复,因为 temp的索引45位置上加了两次
if(temp[arr[i]]==2){
System.out.println(arr[i]+"重复");
}
}
}
/**
* 打算数组的顺序
* @param arr 需要打乱顺序的数组
*/
public static void changePosition(int[] arr) {
Random random = new Random();
int length = arr.length;
for(int index=length-1; index>=0; index--) {
//从0到index处之间随机取一个值,跟index处的元素交换
exchange(arr, random.nextInt(index+1), index);
}
}
/**
* 交换数组中的两个数的位置
* @param arr 需要交换位置的数组
* @param p1 被交换位置的索引
* @param p2 被交换位置的索引
*/
public static void exchange(int[] arr, int p1, int p2) {
int temp = arr[p1];
arr[p1] = arr[p2];
arr[p2] = temp;
}
}package cn.itcast.demo;
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
/*
* 一个网站有这样的一个功能,你输入你的年龄,就会自动显示你的年龄段, 输入0-10 输出儿童 输入10-20 青少年 输入20-30 青年
* 输入30-40 中年 输入40-50 中老年 输入50-60 老年 输入60-70 耄耋之年
*
* 咱们也做这样一个功能 键盘录入一个年龄输出对应的年龄段 (这道题的要求是用最高的效率输出这个年龄段)
*/
Scanner sc = new Scanner(System.in);
int age = sc.nextInt();
method1(age);
}
private static void method1(int age) {
if (age > 0 && age < 11) {
System.out.println("儿童 ");
} else if (age > 10 && age < 21) {
System.out.println("青少年 ");
} else if (age > 20 && age < 31) {
System.out.println("青年 ");
} else if (age > 30 && age < 41) {
System.out.println("中年 ");
} else if (age > 40 && age < 51) {
System.out.println("中老年 ");
} else if (age > 50 && age < 61) {
System.out.println("老年 ");
} else if (age > 60 && age < 71) {
System.out.println("耄耋之年 ");
}
}
private static void method2(int age) {
if (age < 11 && age > 0) {
System.out.println("儿童 ");
} else if (age < 21 && age > 10) {
System.out.println("青少年 ");
} else if (age < 31 && age > 20) {
System.out.println("青年 ");
} else if (age < 41 && age > 30) {
System.out.println("中年 ");
} else if (age < 51 && age > 40) {
System.out.println("中老年 ");
} else if (age < 61 && age > 50) {
System.out.println("老年 ");
} else if (age < 71 && age > 60) {
System.out.println("耄耋之年 ");
}
}
private static void method3(int age) {
String[] ages={"儿童","少年","青年","壮年","中年","中老年","老年"};
System.out.println(ages[age/10]);
}
} |