用JAVA编写一维数组数据不重复代码
偶尔无聊的时候,也去彩票店随机买一注彩票。想着,正好学习JAVA,还是用JAVA写一个彩票随机生成代码。便开始对数据结构和算法进行分析。
一、采用的数据类型及分析
彩票的主要数据是蓝球的5位和红球的2位不重复。在这个地方建立两个int型的一维数组,通过分析,使其不重复及可。大概基本要点是:通过遍历方法 ,循环给数组赋值,从数组的第2位开始,判断是否于前面数值相等,如果相等的话,重新给此次赋值,直到不相等为止。其代码如下图:
数组数据不重复的代码写法有很多种,可以根据个人思考来决定,虽然现在的计算机运算能力很强,不会再乎算法的区别,但是较好的算法,对自己的能力提升还是有很大的帮助的。下图是针对红球的两位数数组写的,刚开始想仿较红球写法,只接复制粘贴就可以了,但还是想练练自己,让红蓝的分析嵌入蓝球的分析方法当中,就写了如下代码,自己觉得还是经较笨。
二、代码整体情况及执行效果情况
三、JAVA代码
import java.util.Scanner;
import java.lang.*;
public class NumSix{
public static void main(String[] args) {
int[] num_int = new int[5];
int[] num_sec = new int[2];
for (int i = 0; i < num_int.length; i++){
num_int[i] = (int)(Math.random()*30+ 1);
if (i < 2){
num_sec[i] = (int)(Math.random()*16 + 1);
if (i == 2){
while (true){
if (num_sec[i] == num_sec[i-1]){
num_sec[i] = (int)(Math.random()*16 + 1);
}else{
break;
}
}
}
}
if (i > 0){
for (int j = 0;j <i; j++){
if (num_int[i] != num_int[j]){
continue;
}else if (num_int[i] == num_int[j]) {
i--;
break;
}
}
}
}
System.out.print("蓝球:");
for (int i = 0;i < num_int.length; i++){
System.out.print(num_int[i] + " ");
}
System.out.print("红球:");
for (int i = 0; i < num_sec.length; i++){
System.out.print(num_sec[i] + " ");
}
System.out.println();
}
}
总结
由于个人学习上还在很大的差距,希望大家多提宝贵意见,让共同学习,共同进步。数据结构和算法虽然基础,只有学习好才会在编写代码的时候,面对数据分析才不会迷茫。