编写程序,获取连续生成的100-200范围的随机数,直到生成的随机数与前一个随机数相等,停止运行

题目:编写程序,获取连续生成的100-200范围的随机数,直到生成的随机数与前一个随机数相等,停止运行

1.打印已经生成了多少个随机数
2.这其中有多少个不重复的

package text1;import java.util.ArrayList;
import java.util.List;
import java.util.Random;
/** 2021.7.23*/
/*编写程序,获取连续生成的100-200范围的随机数,直到生成的随机数与前一个随机数相等,停止运行1.打印已经生成了多少个随机数2.这其中有多少个不重复的*/
public class homework1 {//主函数public static void main(String[] args) {MyLoop();}//定义函数实现public static void MyLoop() {//pre和cur表示前一个数和后一个数int pre=-1;int cur=0;//用列表存贮arrList<Integer> arr = new ArrayList<>();//随机数生成Random ra = new Random();//使用循环,每次循环生成一个随机数,直到pre和cur相等while(pre!=cur){pre = cur;//随机数范围100-200cur = ra.nextInt(100)+100;System.out.print(cur+" ");//将cur存入arr中arr.add(cur);}List<Integer> arr1 = new ArrayList<>();//使用循环找出不重复的数for (int item:arr){int result = arr1.indexOf(item);if(result<0){arr1.add(item);}}System.out.println("\n打印已经生成了"+arr.size()+"个随机数");System.out.println("这其中有"+arr1.size()+"不重复的");}
}

不同版本代码

package com.xja.homework;import java.util.Arrays;
import java.util.Random;/*** 编写程序,获取连续生成的100-200范围的随机数,直到生成的随机数与前一个随机数相等,停止运行
1.打印已经生成了多少个随机数
2.这其中有多少个不重复的*/
public class DemoTest {/*** 思路:存数据+取数据* 1.Random(100) 代表的是[0,100)的随机数 100-200  Random ra = new Random(101)+100 [0,100]* 2.存储当前的随机数和前一个数,为了比较* 3.有多少个不重复的*      把所有的数据存储起来,数组*       不知道数组的长度有多长,可能会涉及到扩容* * 1 3 6 8 1 6 8 9 3 7 6 (11)* * 根据思路写代码* 先对数组进行排序,重复的数字都在一起 1133。。。* if(一个数==后面的数)  说明重复1次* ok* * -->去重* -->1 1 3 3 6 6 6 7 8 8 9 (11个)* count--* * 1 3 6 8 9 7 (6个)*/public static void main(String[] args) {//创建一个随机数对象   // 随机数 Math.randow PIRandom r = new Random();//定义一个变量,用来存储前一个数//先声明,再赋值//a=0;//异常==》编译期异常, //运行时异常//int num = 1/0; //throw Exceptionint a = 0; //4类8种数组类型 byte short int long float double char boolean//String s = null;//定义一个数组,用来存储所有的数字 ,如果装不下,扩容int[] sa = new int[10];//数组//int[] sa1 = {1,2,3};//定义一个变量,用来计数,生成的随机数的个数int i = 0;//for //while//dowhile 至少执行一次循环体while(true) {//生成[100,200]随机数int s = r.nextInt(101)+100;//可能会扩容,如果数组满了(),扩容//Arrays.sort(sa,new Comparator(){})//匿名内部类//选择结构//if() {}else(){}//switch case break; case 穿透  default//三元运算符 int a =  表达式?15:52  // 语句1和语句2类型1样if(i==sa.length) {//扩容 ,参数1(原始数组) 参数2(新数组的长度)sa = Arrays.copyOf(sa, i*2);}//把随机数放到数组中sa[i] = s; //递增随机数i++;//出口if(s==a) {break;}else {              a = s; //将当前随机数赋值给a,变为前一个数}}//截取数组中i个数据sa = Arrays.copyOf(sa, i);//截取前i个数据生成一个新的数组//处理数据//生成的随机数的数量int count = i; //11System.out.println("生成的随机数的总数量:"+count);//对数组进行排序Arrays.sort(sa);//如果一个数与后面的数相等====》说明重复一次  count--//遍历://普通for 循环//增加for 循环//迭代器for(int j = 0; j<sa.length-1;j++) {if(sa[j]==sa[j+1]) {count--;//重复了一次,count-1}} System.out.println("去重之后的个数:"+count);}
}

获取连续生成的100-200范围的随机数,直到生成的随机数与前一个随机数相等,停止运行相关推荐

  1. easyui treegrid获取父节点的id_超简单的分布式ID生成方案!美团开源框架介绍

    目录 阐述背景 Leaf snowflake 模式介绍 Leaf segment 模式介绍 Leaf 改造支持 RPC 阐述背景 不吹嘘,不夸张,项目中用到 ID 生成的场景确实挺多.比如业务要做幂等 ...

  2. 我的世界 minecraft forge mod开发获取连续的方块

    大家在开发minecraft mod的时候可能会遇到一些需要获取连续的方块,所以我这里就给大家提供个思路,有建议或错误可以评论区指出 首先我们需要编写一个方法,用于获取一个方块连起来的方块. 思路:一 ...

  3. 推断速度达seq2seq模型的100倍,谷歌开源文本生成新方法LaserTagger

    选自arXiv 作者:Eric Malmi等 机器之心编译 序列到序列(seq2seq)模型给机器翻译领域带来了巨大变革,并成为多种文本生成任务的首选工具,如文本摘要.句子融合和语法纠错.模型架构改进 ...

  4. 输出100 - 200之间的素数C语言

    输出100 - 200之间的素数 素数就是质数,即除了1和它本身不再有求它因数的自然数 那么这道题的思路就是用100到200之间的数去除以比这个数小的所有数(除了1和它本身),如果有余数说明它不是一个 ...

  5. mysql 连续签到天数_获取连续登陆天数,连续签到天数 ,方法优化

    获取连续登陆天数,连续签到天数,类似这样的需求应该是一个常见的需求,那么我们有没有一套成熟的解决方案呢 ?下面我来跟大家分享一下我的故事. 在猴年马月的一天,有个用户反馈个人中心打开缓慢,需要7.8秒 ...

  6. Java——有一个抽奖池,该抽奖池中存放了奖励的金额,该抽奖池用一个数组int[] arr = {10,5,20,50,100,200,500,800,2,80,300}

    有一个抽奖池,该抽奖池中存放了奖励的金额,该抽奖池用一个数组int[] arr = {10,5,20,50,100,200,500,800,2,80,300}; 创建两个抽奖箱(线程)设置线程名称分别 ...

  7. 有一个抽奖池,该抽奖池中存放了奖励的金额,该抽奖池用一个数组int[] arr = {10,5,20,50,100,200,500,800,2,80,300};创建两个抽奖箱(线程)...

    有一个抽奖池,该抽奖池中存放了奖励的金额,该抽奖池用一个数组int[] arr = {10,5,20,50,100,200,500,800,2,80,300};     创建两个抽奖箱(线程)设置线程 ...

  8. C语言实现随机生成0~100的数

    #include <iostream> #include <time.h>int main() {srand((unsigned)time(NULL));//srand()就是 ...

  9. 【C语言练习】将100~200之间的素数输出

    将100~200之间的素数输出 一.编程思路 1.首先,我们要意识到,找出某个区间内符合条件的数,就需要对这个区间内的所有数进行遍历,而最常用的遍历方法就是利用for循环: 2.其次,在确定了遍历区间 ...

最新文章

  1. 中文实体识别最新SOTA算法
  2. [知识图谱]利用py2neo从Neo4j数据库获取数据
  3. 实验七多线程编程_JAVA
  4. bug?VS2010中CImageList::DrawIndirect总是返回失败
  5. 解决Javascript疲劳的方法-以及其他所有疲劳
  6. 【干货】全球大数据领域顶级开源工具汇总
  7. 信息学奥赛一本通(1121:计算矩阵边缘元素之和)
  8. 【C++】C++类的学习(二)——构造函数、析构函数、拷贝构造函数以及this指针
  9. 读取excel并将其转换为xml
  10. 操作系统宕机,MySQL数据找回记录
  11. JavaScript 基础--- (正则表达式 / 事件监听与绑定)
  12. python基础编程语法-Python编程入门——基础语法详解
  13. 飞信php接口 web service
  14. CentOS7各个版本镜像下载地址
  15. [51Nod 1035 最长的循环节] 循环小数的性质
  16. 银行放贷冲动不强:7折房贷利率料最早明年现身
  17. illegal unquoted character
  18. 常用js的数组方法和对象方法
  19. 基于java+ssm医院门诊预约挂号排班系统-计算机毕业设计
  20. 商务本Surface Laptop2用固态U盘安装Ubuntu18.04全教程(步骤篇)

热门文章

  1. mysql 1033_mysql1033错误 InnoDB临时表空间报错
  2. 位运算符最详细的解释(java)
  3. 水上运动装备的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  4. ubuntn下串口工具minicom ,kermit的使用
  5. Java笔记--基础篇
  6. scala case 常用简写
  7. “对不起,我是用AI做的警察”
  8. 超低功耗MCU的选择方法
  9. js html等比例放大后生成图片 html2canvas
  10. uniapp开发小程序之上传图片(拍照或从相册中取)