[英]Random number sequence that stops with 2 equal numbers
創建一個由0-9的數字組成的數字序列,如果兩個數字背靠背出現,則結束序列並顯示序列的長度。
我一直試圖找到一種方法來編寫具有上述要求的程序。 我想不出辦法做到這一點。 我得到的最多是:
import java.util.Random;
public class RandomSequence{
public static void main(String[]args){
int num1, num2, num3, i=2;
Random r=new Random();
num1=r.nextInt(10);
num2=r.nextInt(10);
System.out.print(num1+", "+num2+", ");
while (num1!=num2){
num3=r.nextInt(10);
i++;
System.out.print(num3+", ");
if (num3==num2){
System.out.println("There are "+i+" numbers in the sequence");
..
當兩個相等的數字背靠背出現時,我無法弄清楚如何結束序列。
這是一個給出的例子:
1,6,2,9,8,1,4,2,8,2,2
這個序列長11個數字。 “
謝謝,非常感謝幫助!
我沒有看到num2正在改變的任何地方。 您希望num2保存您在循環的上一次迭代中生成的數字。 所以,在循環結束之前,你需要設置num2 = num3;
真的,根本不需要num3。 您在循環之前設置為分別使用num1
和num2
作為上一個和當前數字,然后將num3
添加到混合中。 重命名'num1'和'num2'(比如'previous'和'current')可能有助於澄清發生了什么。
剛剛注意到,還有一個小問題。 如果第一項和第二項相等,則根本不會完成循環,因此錯過輸出。 你應該在循環退出后輸出(while條件已經檢查了相等性,畢竟)。
========
像這樣的東西:
get first number, store as 'previous'.
get second number, store as 'current'.
print first couple numbers
while (previous!=current){
count up.
move 'current' to 'previous'
get next number, store as 'current'
print current value
}
print final count
import java.util.Random;
public class RandomSequence{
public static void main(String[]args){
int num1, num2, num3, i=2;
Random r=new Random();
num1=r.nextInt(10);
num2=r.nextInt(10);
System.out.print(num1+", "+num2);
while (num1!=num2){
num1=num2;
num2=r.nextInt(10);
i++;
System.out.print(", "+num2);
}
System.out.println("\n\nThis sequence consists of "+i+" numbers");
}
}
非常感謝femtoRgon。 我拿了你的小費並重新編輯了程序,它完美無缺。 它比我想象的容易(我過度思考)。
再次感謝你!
使用ArrayList可以很容易
import java.util.ArrayList;
import java.util.Random;
public class RandomSequenceB {
public static void main(String[]args){
int i=0;
ArrayList sequence = new ArrayList();
while (true) {
sequence.add(new Random().nextInt(10));
System.out.println(sequence);
if (i > 1 && sequence.get(i) == sequence.get(i - 1)){
System.out.println("There are "+i+" numbers in the sequence");
break;
}
i++;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.