打印整型数组内容
- 需求:
设计一个方法用于输出任意整型数组的内容,要求输出成如下格式:
“该数组内容为:[11,22,33,44,55]” - 分析:
1.定义一个方法,要求该方法能够接收数组,并输出数组内容。(考虑是否需要参数?是否需要返回值类型申明?)
2.定义一个静态初始化的数组,调用该方法,并传入该数组。
public static void main(String[] args) {
int[] arrs = {11, 22, 33, 44, 55};
change(arrs);
int[] arrs1 =null;
change(arrs1);
}
public static void change(int[] arr) {
System.out.print("[");
if (arr !=null && arr.length>0) {
for (int i = 0; i < arr.length; i++) {
System.out.print(i == arr.length - 1 ? arr[i] : arr[i] + ",");
}
}
System.out.println("]");
}
数字加密
- 需求:
某系统的数字密码:比如1983,采用加密方式进行传输,规则如下:先得到每位数,然后每位数都加上5,再对10求余,最后将所有数字反转,得到一串新数。 - 分析:
1.将每位数据存入到数组中去,遍历数组每位数据按照规则进行更改,把更改后的数据从新存入到数组中。
2.将数组的前后元素进行交换,数组中的最终元素就是加密后的结果。
public static void main(String[] args) {
System.out.println("请您输入需要加密的数字个数");
Scanner sc = new Scanner(System.in);
int length = sc.nextInt();
int[] arr = new int[length];
for (int i = 0; i < arr.length; i++) {
System.out.println("请您输入加密的第"+(i+1)+"个数字");
int number = sc.nextInt();
arr[i] = number;
}
printArray(arr);
for (int i = 0; i < arr.length; i++) {
arr[i] = (arr[i] + 5) % 10;
}
for (int i = 0,j = arr.length-1 ; i < j; i++ , j--) {
int temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
printArray(arr);
}
public static void printArray(int[] arr){
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
System.out.print(i == arr.length-1 ? arr[i] : arr[i]+",");
}
System.out.println("]");
}
双色球系统开发
随机生成一组中奖号码
- 分析:
1.中奖号码由6个红球和一个蓝球组成(6个红球要求不能重复)
2.可以定义方法用于返回一组中将号码(7个数据),返回的形式是一个整型数组。
public static int[] createLuckNumber(){
int[] numbers = new int[7];
Random r = new Random();
for (int i = 0; i < numbers.length-1; i++) {
while (true){
int data = r.nextInt(33)+1;
boolean flag = true;
for (int j = 0; j < i; j++) {
if (numbers[j]==data){
flag = false;
break;
}
}
if (flag){
numbers[i]=data;
break;
}
}
}
numbers[6] = r.nextInt(16)+1;
return numbers;
}
用户输入一组双色球号码
- 分析:
1.定义一个方法,该方法可以录入用户输入的6个红球和1个蓝球号码。
2.该方法最终需要返回一个数组,数组中就是用户录入的号码(7位)。
public static int[] userInputNumbers(){
int[] numbers = new int[7];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < numbers.length-1; i++) {
System.out.println("请您输入第"+(i + 1)+"个红球号码(1-33),要求不重复");
int data = sc.nextInt();
numbers[i] = data;
}
System.out.println("请您输入蓝球号码(1-16):");
numbers[6] = sc.nextInt();
return numbers;
}
判断中奖情况
- 分析
1.定义一个方法,可以接收中奖号码的数组,用户选号的数组。
2.根据命中红球数和蓝球数判断最终的中奖情况并输出详情和中奖金额。
public static void judge(int[] LuckyNumbers,int[] userNumbers) {
int redHitNumbers = 0;
int blueHitNumbers = 0;
for (int i = 0; i < userNumbers.length - 1; i++) {
for (int j = 0; j < LuckyNumbers.length - 1; j++) {
if (userNumbers[i] == LuckyNumbers[i]) {
redHitNumbers++;
break;
}
}
}
blueHitNumbers = LuckyNumbers[6] == userNumbers[6] ? 1 : 0;
System.out.println("中奖号码是:");
printArray(LuckyNumbers);
System.out.println("您投注号码是:");
printArray(userNumbers);
System.out.println("您命中了几个红球:"+redHitNumbers);
System.out.println("您是否命中蓝球:"+(blueHitNumbers ==1 ? "是":"否"));
if (blueHitNumbers == 1 && redHitNumbers < 3) {
System.out.println("恭喜您,中了5元小奖");
} else if (blueHitNumbers == 1 && redHitNumbers == 3
|| blueHitNumbers == 0 && redHitNumbers == 4) {
System.out.println("恭喜您,中了10元小奖");
} else if (blueHitNumbers == 1 && redHitNumbers == 4
|| blueHitNumbers == 0 && redHitNumbers == 5) {
System.out.println("恭喜您,中了200元");
} else if (blueHitNumbers == 1 && redHitNumbers == 5) {
System.out.println("恭喜您,中了3000元大奖");
} else if (blueHitNumbers == 0 && redHitNumbers == 6) {
System.out.println("恭喜您,中了500万大奖");
} else if (blueHitNumbers == 1 && redHitNumbers == 6) {
System.out.println("恭喜您,中了1000万元大奖");
}else {
System.out.println("感谢您为福利事业做出的突出贡献!");
}
}
public static void printArray(int[] arr){
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+"\t");
}
System.out.println();
}
把所有的合起来 最终的代码
public static void main(String[] args) {
int[] LuckyNumbers = createLuckNumber();
int[] userNumbers = userInputNumbers();
judge(LuckyNumbers,userNumbers);
}
public static void judge(int[] LuckyNumbers,int[] userNumbers) {
int redHitNumbers = 0;
int blueHitNumbers = 0;
for (int i = 0; i < userNumbers.length - 1; i++) {
for (int j = 0; j < LuckyNumbers.length - 1; j++) {
if (userNumbers[i] == LuckyNumbers[i]) {
redHitNumbers++;
break;
}
}
}
blueHitNumbers = LuckyNumbers[6] == userNumbers[6] ? 1 : 0;
System.out.println("中奖号码是:");
printArray(LuckyNumbers);
System.out.println("您投注号码是:");
printArray(userNumbers);
System.out.println("您命中了几个红球:"+redHitNumbers);
System.out.println("您是否命中蓝球:"+(blueHitNumbers ==1 ? "是":"否"));
if (blueHitNumbers == 1 && redHitNumbers < 3) {
System.out.println("恭喜您,中了5元小奖");
} else if (blueHitNumbers == 1 && redHitNumbers == 3
|| blueHitNumbers == 0 && redHitNumbers == 4) {
System.out.println("恭喜您,中了10元小奖");
} else if (blueHitNumbers == 1 && redHitNumbers == 4
|| blueHitNumbers == 0 && redHitNumbers == 5) {
System.out.println("恭喜您,中了200元");
} else if (blueHitNumbers == 1 && redHitNumbers == 5) {
System.out.println("恭喜您,中了3000元大奖");
} else if (blueHitNumbers == 0 && redHitNumbers == 6) {
System.out.println("恭喜您,中了500万大奖");
} else if (blueHitNumbers == 1 && redHitNumbers == 6) {
System.out.println("恭喜您,中了1000万元大奖");
}else {
System.out.println("感谢您为福利事业做出的突出贡献!");
}
}
public static void printArray(int[] arr){
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+"\t");
}
System.out.println();
}
public static int[] userInputNumbers(){
int[] numbers = new int[7];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < numbers.length-1; i++) {
System.out.println("请您输入第"+(i + 1)+"个红球号码(1-33),要求不重复");
int data = sc.nextInt();
numbers[i] = data;
}
System.out.println("请您输入蓝球号码(1-16):");
numbers[6] = sc.nextInt();
return numbers;
}
public static int[] createLuckNumber(){
int[] numbers = new int[7];
Random r = new Random();
for (int i = 0; i < numbers.length-1; i++) {
while (true){
int data = r.nextInt(33)+1;
boolean flag = true;
for (int j = 0; j < i; j++) {
if (numbers[j]==data){
flag = false;
break;
}
}
if (flag){
numbers[i]=data;
break;
}
}
}
numbers[6] = r.nextInt(16)+1;
return numbers;
}