1. 删除重复值阿伟学长在开发一款游戏, 他希望玩家已经获得的道具会降低爆率, 避免玩家获得太多重复的道具但玩家背包中道具是乱序且不确定的, 为了减小判断的运算量, 需要先对数据进行去重.设计一个程序, 输入数据数量N, 以及N个整数Ni. 将该组数据去重后打印(1<N<100, 0 <= Ni <= MAX_INT)=====================================样例输入:101 3 2 6 2 6 4 8 2 6样例输出:1 3 2 6 4 8
整体代码实现:
import java.util.Scanner;
public class H1 {
public static void main(String[] args) {
//设计一个程序, 输入数据数量N, 以及N个整数Ni. 将该组数据去重后打印
//(1<N<100, 0 <= Ni <= MAX_INT)
//样例输入:
//10
//1 3 2 6 2 6 4 8 2 6
//样例输出:
//1 3 2 6 4 8
//思路:
//1.N,Ni[]
//2.遍历输入的数据,判断是否重复,重复的话,不添加到数组
//3.输出数组
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
int Ni[] = new int[N];
boolean flag = false;//开关判断是否重复
int count = 0;//接收数组的下标
int temp = 0;//接收输入的数据
for(int j = 1;j <= N;j++){
temp = scanner.nextInt();
for (int i = 0; i < Ni.length; i++) {
if(temp == Ni[i]){
flag = true;
}
}
if(flag == false){//不重复,添加到数组中
Ni[count] = temp;
count++;
}
flag = false;
}
//遍历数组
for (int i = 0; i <Ni.length ; i++) {
if(Ni[i] == 0){
break;
}
System.out.print(Ni[i] + " ");
}
}
}
2. 数字环有一个长度为n的数字环, 将每个数字往后移动m位, 使其成为一个新的数字环输入:第一行: 整数n 表示有n个数字第二行: n个整数Ni, 表示数字环的每个元素第三行: 整数m 表示每个元素需要往后移动m位输出: 移动后的新数字环(1<=m<n<100, MIN_INT<Ni<MAX_INT)=====================================样例输入:101 2 3 4 5 6 7 8 9 102样例输出:9 10 1 2 3 4 5 6 7 8
整体代码实现:
import java.util.Scanner;
public class H2 {
public static void main(String[] args) {
//2. 数字环
//有一个长度为n的数字环, 将每个数字往后移动m位, 使其成为一个新的数字环
//输入:
//第一行: 整数n 表示有n个数字
//第二行: n个整数Ni, 表示数字环的每个元素
//第三行: 整数m 表示每个元素需要往后移动m位
//输出: 移动后的新数字环
//(1<=m<n<100, MIN_INT<Ni<MAX_INT)
//样例输入:
//10
//1 2 3 4 5 6 7 8 9 10
//2
//样例输出:
//9 10 1 2 3 4 5 6 7 8
//思路:
//1.N,Ni[N]接收数据,整数m,新数组Bn[N]
//2.遍历Ni[N],判断i + m是否大于N-1,如果大于则新的下标为[i+m-N],否则新的下标为[i+m]
//3.存入Bn中,遍历输出
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
int Ni[] = new int[N];
int Bn[] = new int[N];
for (int i = 0; i < Ni.length; i++) {
Ni[i] = scanner.nextInt();
}
int m = scanner.nextInt();
for (int i = 0; i < Ni.length; i++) {
if((i + m) > (N - 1)){
Bn[i + m - N] = Ni[i];
}else{
Bn[i + m] = Ni[i];
}
}
for (int i = 0; i < Bn.length; i++) {
System.out.print(Bn[i] + " ");
}
}
}