获取连续生成的100-200范围的随机数,直到生成的随机数与前一个随机数相等,停止运行
生活随笔
收集整理的這篇文章主要介紹了
获取连续生成的100-200范围的随机数,直到生成的随机数与前一个随机数相等,停止运行
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
編寫程序,獲取連續(xù)生成的100-200范圍的隨機(jī)數(shù),直到生成的隨機(jī)數(shù)與前一個(gè)隨機(jī)數(shù)相等,停止運(yùn)行
題目:編寫程序,獲取連續(xù)生成的100-200范圍的隨機(jī)數(shù),直到生成的隨機(jī)數(shù)與前一個(gè)隨機(jī)數(shù)相等,停止運(yùn)行
1.打印已經(jīng)生成了多少個(gè)隨機(jī)數(shù)
2.這其中有多少個(gè)不重復(fù)的
不同版本代碼
package com.xja.homework;import java.util.Arrays; import java.util.Random;/*** 編寫程序,獲取連續(xù)生成的100-200范圍的隨機(jī)數(shù),直到生成的隨機(jī)數(shù)與前一個(gè)隨機(jī)數(shù)相等,停止運(yùn)行 1.打印已經(jīng)生成了多少個(gè)隨機(jī)數(shù) 2.這其中有多少個(gè)不重復(fù)的*/ public class DemoTest {/*** 思路:存數(shù)據(jù)+取數(shù)據(jù)* 1.Random(100) 代表的是[0,100)的隨機(jī)數(shù) 100-200 Random ra = new Random(101)+100 [0,100]* 2.存儲(chǔ)當(dāng)前的隨機(jī)數(shù)和前一個(gè)數(shù),為了比較* 3.有多少個(gè)不重復(fù)的* 把所有的數(shù)據(jù)存儲(chǔ)起來(lái),數(shù)組* 不知道數(shù)組的長(zhǎng)度有多長(zhǎng),可能會(huì)涉及到擴(kuò)容* * 1 3 6 8 1 6 8 9 3 7 6 (11)* * 根據(jù)思路寫代碼* 先對(duì)數(shù)組進(jìn)行排序,重復(fù)的數(shù)字都在一起 1133。。。* if(一個(gè)數(shù)==后面的數(shù)) 說(shuō)明重復(fù)1次* ok* * -->去重* -->1 1 3 3 6 6 6 7 8 8 9 (11個(gè))* count--* * 1 3 6 8 9 7 (6個(gè))*/public static void main(String[] args) {//創(chuàng)建一個(gè)隨機(jī)數(shù)對(duì)象 // 隨機(jī)數(shù) Math.randow PIRandom r = new Random();//定義一個(gè)變量,用來(lái)存儲(chǔ)前一個(gè)數(shù)//先聲明,再賦值//a=0;//異常==》編譯期異常, //運(yùn)行時(shí)異常//int num = 1/0; //throw Exceptionint a = 0; //4類8種數(shù)組類型 byte short int long float double char boolean//String s = null;//定義一個(gè)數(shù)組,用來(lái)存儲(chǔ)所有的數(shù)字 ,如果裝不下,擴(kuò)容int[] sa = new int[10];//數(shù)組//int[] sa1 = {1,2,3};//定義一個(gè)變量,用來(lái)計(jì)數(shù),生成的隨機(jī)數(shù)的個(gè)數(shù)int i = 0;//for //while//dowhile 至少執(zhí)行一次循環(huán)體while(true) {//生成[100,200]隨機(jī)數(shù)int s = r.nextInt(101)+100;//可能會(huì)擴(kuò)容,如果數(shù)組滿了(),擴(kuò)容//Arrays.sort(sa,new Comparator(){})//匿名內(nèi)部類//選擇結(jié)構(gòu)//if() {}else(){}//switch case break; case 穿透 default//三元運(yùn)算符 int a = 表達(dá)式?15:52 // 語(yǔ)句1和語(yǔ)句2類型1樣if(i==sa.length) {//擴(kuò)容 ,參數(shù)1(原始數(shù)組) 參數(shù)2(新數(shù)組的長(zhǎng)度)sa = Arrays.copyOf(sa, i*2);}//把隨機(jī)數(shù)放到數(shù)組中sa[i] = s; //遞增隨機(jī)數(shù)i++;//出口if(s==a) {break;}else { a = s; //將當(dāng)前隨機(jī)數(shù)賦值給a,變?yōu)榍耙粋€(gè)數(shù)}}//截取數(shù)組中i個(gè)數(shù)據(jù)sa = Arrays.copyOf(sa, i);//截取前i個(gè)數(shù)據(jù)生成一個(gè)新的數(shù)組//處理數(shù)據(jù)//生成的隨機(jī)數(shù)的數(shù)量int count = i; //11System.out.println("生成的隨機(jī)數(shù)的總數(shù)量:"+count);//對(duì)數(shù)組進(jìn)行排序Arrays.sort(sa);//如果一個(gè)數(shù)與后面的數(shù)相等====》說(shuō)明重復(fù)一次 count--//遍歷://普通for 循環(huán)//增加for 循環(huán)//迭代器for(int j = 0; j<sa.length-1;j++) {if(sa[j]==sa[j+1]) {count--;//重復(fù)了一次,count-1}} System.out.println("去重之后的個(gè)數(shù):"+count);} }總結(jié)
以上是生活随笔為你收集整理的获取连续生成的100-200范围的随机数,直到生成的随机数与前一个随机数相等,停止运行的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 腾讯企业邮箱 POP3/SMTP 设置
- 下一篇: 破圈、增长、被加码,集合店能创造美妆行业