黑马程序员技术交流社区

标题: 【新人第一帖】java中randm获取十个不重复的随机数的方法... [打印本页]

作者: gz9218    时间: 2016-9-4 19:24
标题: 【新人第一帖】java中randm获取十个不重复的随机数的方法...
/*
、按照需求实现如下代码:
        a、定义一个int类型的数组,该数组的长度为10
        b、获取10个1 - 100之间的随机数,存储到数组中。并且保证该数组中的元素唯一(没有重复元素);
        c、打印数组,格式为:"[元素1, 元素2, 元素3, ...]"
        d、求数组中索引为偶数或者元素为偶数的和
*/
class Test5 {
        public static void main(String[] args) {
                int[] arr = new int[10];                        //定义一个int型数组,长度为10
                int count = 0;                                                //定义count计数随机数的个数,指示当前添加到了第几个数
                boolean b;                                                        //判断是否产生重复的数的辅助变量
                while (count < 10) {                                //产生10个数
                        int num = (int)((Math.random()*100)+1); //产生一个随机数
                        b = true;                                        //将辅助变量设为true,表示可以添加元素
                        for (int i = 0;i < count ;i++ ) {                                //循环判断是否重复
                                if (arr[i]==num) {                //如果重复,则设置b为false,跳出循环,如果不重复,则一直将数组元素遍历一次进行比较       
                                        b = false;                       
                                        break;
                                }
                        }
                        if (b) {                                        //如果可以添加,则添加元素到数组,并将计数器count加1
                                        arr[count] = num;
                                        count++;
                                }
                }
                print(arr);                                                //调用print,打印输出数组元素
                getSum(arr);                                        //求数组中索引为偶数或者元素为偶数的和
        }

        public static void print(int[] arr) {                //打印数组,格式为:"[元素1, 元素2, 元素3, ...]"
                System.out.print("[");                                        //打印在控制台       
                for (int i = 0;i < arr.length ;i++ ) {                                //遍历数组中的每一个元素
                        System.out.print(arr[i]);                                        //
                        if (i!=arr.length-1) {
                                System.out.print(",");                                        //打印在控制台
                        }
                }
                        System.out.print("]");
        }

        public static int getSum(int[] arr) {                //求数组中索引为偶数或者元素为偶数的和
                int sum = 0;                                                        //先声明定义sum为int类,并初始化
                for (int i = 0;i < arr.length ;i++ ) {        //遍历数组
                        if (i%2 ==0 || arr[i]%2==0) {                //i%2==0为索引为偶数,arr[i]%2==0为元素为偶数
                                 sum = sum +arr[i];                                //求和
                                 }       
                        }
                System.out.println("");
                System.out.println("sum="+sum);                //输出sum
                return sum;                                                        //返回sum
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2