import java.util.Random;
public class Test6 {
public static void main(String[] args) {
//数字加密
//先得到每位数,然后每位数都加5,再对10求余,最后将所有数字反转,得到一串新数
//随机生成一个100000以内的数
Random rand = new Random();
int number = rand.nextInt(100000);
System.out.println("随机生成的数是:"+number);
//接收随机数生成的数组
int[] myArr=getArr(number);
printArr(myArr);
//数组每位+5
addArr(myArr);
// printArr(myArr);
//数组对10取余
modeArr(myArr);
printArr(myArr);
//数组反转
reverseArr(myArr);
printArr(myArr);
}
//将整数每一位放入数组
public static int[] getArr(int num){
int length=0;
int temp=num;
while (temp!=0){
temp=temp/10;
length++;
}
int[] arr=new int[length];
for(int i=0;i<length;i++){
arr[length-1-i]=num%10;
num=num/10;
}
return arr;
}
//数组每位+5
public static void addArr(int num[]){
for(int i=0;i<num.length;i++){
num[i]=num[i]+5;
}
}
//数组对10取余
public static void modeArr(int num[]){
for(int i=0;i<num.length;i++){
num[i]=num[i]%10;
}
}
//数组反转
public static void reverseArr(int num[]){
for(int i=0;i<num.length/2;i++){
int temp=num[i];
num[i]=num[num.length-i-1];
num[num.length-i-1]=temp;
}
}
//打印数组
public static void printArr(int[] arr){
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]);
}
System.out.println();
}
}
3.生成随机验证码
import java.util.Random;
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
//随机产生一个5位验证码
//长度为5
//前四位是大写字母或小写字母的随机
//最后一位是数字
//接收验证码
String str="";
Random rand = new Random();
//随机生成数字
int n = rand.nextInt(10);
for (int i = 0; i < 4; i++) {
//获取4位随机字母
str = str + randomCh();
}
//将数字拼接到字母后
str = str + n;
//打印验证码
System.out.println("验证码是:\n"+str);
}
//随机获取大小写字母
public static char randomCh(){
Random rand = new Random();
char ch='a';
//随机从‘a’到‘z’
ch=(char)(ch+rand.nextInt(26));
//随机大小写
if(rand.nextInt(2)==1)
{
ch=(char)(ch-32);
}
return ch;
}
}
4.复制数组
public class Test4 {
public static void main(String[] args) {
//复制数组
int[] arr = {1,2,3,4,5,6,7,8,9};
int[] arrCopy = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
arrCopy[i] = arr[i];
}
System.out.println("老数组为:");
printArr(arr);
System.out.println("老数组首地址为:");
System.out.println(arr);
System.out.println("新数组为:");
printArr(arrCopy);
System.out.println("新数组首地址为:");
System.out.println(arrCopy);
}
public static void printArr(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println('\n');
}
}
5.评委打分
import java.util.Random;
public class Test5 {
public static void main(String[] args) {
//评委打分
//6名评委给选手打分,分数范围是[0-100]之间的整数。
//选手的最后得分为:去掉最高分、最低分的4个评委的评分,请计算出选手得分
int[] goad=new int[6];
for (int i = 0; i < goad.length; i++) {
//生成得分
goad[i]=ranNum();
//打印得分
System.out.print(goad[i]+" ");
}
System.out.println("选手最终得分为:\n"+arrAvg(goad,arrMax(goad),arrMin(goad)));
}
//生成[0-100]随机数
public static int ranNum() {
Random rand = new Random();
return rand.nextInt(101);
}
//计算数组最大值
public static int arrMax(int[] arr) {
int max = arr[0];
for (int i = 0; i < arr.length; i++) {
max = Math.max(max, arr[i]);
}
System.out.println("\n最高分:"+max);
return max;
}
//计算数组最小值
public static int arrMin(int[] arr) {
int min = arr[0];
for (int i = 0; i < arr.length; i++) {
min = Math.min(min, arr[i]);
}
System.out.println("最低分:"+min);
return min;
}
//去掉最大值和最小值计算平均分
public static double arrAvg(int[] arr,int max,int min) {
double avg = 0;
for (int i = 0; i < arr.length; i++) {
avg += arr[i];
}
System.out.println("总分:"+avg);
System.out.println("去掉最高分和最低分后的总分:"+(avg-max-min));
avg = (avg-max-min) / (arr.length - 2.0);
return avg;
}
}
6.数字加密
import java.util.Random;
public class Test6 {
public static void main(String[] args) {
//数字加密
//先得到每位数,然后每位数都加5,再对10求余,最后将所有数字反转,得到一串新数
//随机生成一个100000以内的数
Random rand = new Random();
int number = rand.nextInt(100000);
System.out.println("随机生成的数是:"+number);
//接收随机数生成的数组
int[] myArr=getArr(number);
printArr(myArr);
//数组每位+5
addArr(myArr);
// printArr(myArr);
//数组对10取余
modeArr(myArr);
printArr(myArr);
//数组反转
reverseArr(myArr);
printArr(myArr);
}
//将整数每一位放入数组
public static int[] getArr(int num){
int length=0;
int temp=num;
while (temp!=0){
temp=temp/10;
length++;
}
int[] arr=new int[length];
for(int i=0;i<length;i++){
arr[length-1-i]=num%10;
num=num/10;
}
return arr;
}
//数组每位+5
public static void addArr(int num[]){
for(int i=0;i<num.length;i++){
num[i]=num[i]+5;
}
}
//数组对10取余
public static void modeArr(int num[]){
for(int i=0;i<num.length;i++){
num[i]=num[i]%10;
}
}
//数组反转
public static void reverseArr(int num[]){
for(int i=0;i<num.length/2;i++){
int temp=num[i];
num[i]=num[num.length-i-1];
num[num.length-i-1]=temp;
}
}
//打印数组
public static void printArr(int[] arr){
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]);
}
System.out.println();
}
}