题:统计数字出现次数。 随机生成100个数字,数字范围从1到10,统计每个数字出现的次数并打印到控制台。


public static void main(String[] args) {    printCount(getNumList());}

private static ArrayList<Integer> list;

public static ArrayList<Integer> getNumList() {    list = new ArrayList<Integer>();    Random r = new Random();    for (int i = 0; i < 100; i++) {        int num = r.nextInt(10) + 1;        list.add(num);    }

return list;}//主体方向思想,从集合中拿出一个数(遍历顺序)  i=0时,下标为i的元素会和后面的所有比较,当他们相同时,会把下表为J的元素给换成0,最后遍历到末尾了//就把下标为i的元素也给他换成0,同时count变量会+1 记录出现次数,count初始值就是1因为下标为i的时候的元素本身就是一个,//for循环的意思如上,for循环内: 如果下标为i的元素是0,那么就跳过本次循环直接进行下一步,那么内循环里就会一直跳一直跳直到i+1,//如果第一个if不满足,那么当下标为1 的数和下标为i+1也就是j的元素相等时,count就要++因为他找到一个和他相同的元素了,处理完把j对应的元素给改成0//那么这样第二个if的作用也就罗列清楚了,第三个if:就是要打印输出的那一段了,说实话这个打印想起来起来还真的有些烧..., 当j迭代到最后一位数的时候//开始打印了,也就是我们的题意所在,完了给他count初始化,因为还在循环内,这玩意我还要继续用,最后因为完美主义情结,我们把"罪魁祸首"给改成0,虽然就算不改后面也用不到public static void printCount(ArrayList<Integer> list) {    int count = 1;    int num = 0;    for (int i = 0; i < list.size() - 1; i++) {        for (int j = i + 1; j < list.size(); j++) {            if (list.get(i) == 0) {                continue;            }            if (list.get(i) == list.get(j)) {                count++;                num = list.get(j);                list.set(j, 0);            }            if(j==list.size()-1){                System.out.println("数字:" + num + "==" + count);                count=1;                list.set(i,0);            }        }

}

}

原文地址:https://www.cnblogs.com/lyuweigh/p/9495468.html

时间: 2024-11-07 09:56:34

题:统计数字出现次数。 随机生成100个数字,数字范围从1到10,统计每个数字出现的次数并打印到控制台。的相关文章

在1-10000中随机生成100个数

题意:在1-10000中随机生成100个数,1-10000已经放在数组中,要求时间和空间都要O(1). 思路:因为空间要O(1),所以我们可以想到这一定是在原本数组的基础上操作,时间也要O(1)的话,证明我们无法Hash后再判重.所以我们可以这么想用一个指针表示目前已经生成好的随机数,那么这个指针从1开始,每次都从剩下的数中随机取一个和当前指针交换就可以完成了,自己写了代码,有错求指出来. import java.util.ArrayList; import java.util.HashSet;

JS随机生成100个DIV每10个换行(换色,生成V字和倒V)

附图 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 <style> 7 #content{margin:20px auto 0px;} 8 .d2{width:50px;height:50px;color:white;text-align: cent

C#在一段数字区间内随机生成若干个互不相同的随机数

/// <summary>        /// Random ra=new Random();  系统自动选取当前时前作随机种子:        /// Random ra=new Random(6) 指定一个int型的参数作为随机种子;        /// ra.Next(); 返回一个大于或等于零而小于2,147,483,647的随机数        /// ra.Next(20);返回一个大于或等于零而小于20的随机数        /// ra.Next(1,20); 返回一个大于

软件工程实验一--编程随机生成30个四则运算,算数包括100以内的整数和真分数。

软件工程实验一: ——编程随机生成30个四则运算,算数包括100以内的整数和真分数. 实验思路:先利用rand()函数随机生成两个算数,包括100以内的整数和真分数,生成100以内的整数,用rand()%100,为了避免在除法运算中除数不能为零,所以运算符右边的整数直接用1+rand()%99:在随机生成真分数时,我先生成两个整数,来充当分子和分母,同样分母不能为零,用1+rand()%99.加减乘除四则运算有整数与整数之间的运算,分数与分数之间的运算,整数和分数之间的运算,分数和整数之间的运算

实用的随机数生成类Random:测试(随机产生100个不重复的正整数)

实用的随机数生成类Random:测试(使用Random类随机生成100个不重复的正整数) 一.之前我们使用随机数用的是Math类的random()方法: tips: 产生随机数(0~9中任意整数)的方法:int random = (int)(Math.random()*10); 1.商场幸运抽奖程序. 会员号的百位数字等于产生的随机数即为幸运会员. public class GoodLuck{ public static void main(String[] args){ //产生随机数 int

java中随机生成汉字

main方法中使用: //随机生成100个汉字 String ss=""; for(int i=0;i<100;i++){ ss+=getChinese(i); } System.out.println(ss); 结果如图: //随机生成汉字//seed指定Random(long seed)中的种子数public static String getChinese(long seed) throws UnsupportedEncodingException{ String str=

随机生成身份证号码

//程序入口 public static void main ( String[] args ) { Test t = new Test(); for (int i = 0; i < 100; i++)//随机生成100个身份证号码 { System.out.println(t.getRandomID(); } } /** * 获取随机生成的身份证号码 * * @author mingzijian * @return */ public String getRandomID() { String

随机生成16位的16进制数

利用Python的uuid模块生成16位的16进制数 #!/usr/bin/env python3 # -*- coding: utf-8 -*- import uuid for i in range(100): res = str(uuid.uuid4()) res = res.replace('-', '') print(res[:16]) 随机生成100个16位的16进制数: e77ddca3bb474c9d fb96d68a32754500 2c5dc4347fcd43c0 b51bff

统计随机生成的数出现次数

统计随机生成的数出现次数 /** * 功能:定义一个一维数组,其中存储随机生成的1000个1到100以内的整数,统计每个整数出现的次数 * 时间:2014年6月4日16:03:54 * 作者:cutter_point */ package com.lesson4; import java.util.*; public class Demo4_9 { public static void main(String [] args) { //1.生成1000个100以内的整数 int a[]=new