Java 在数组中搜索递增整数序列
任务如下: 创建一个程序,通过随机生成的值介于Java 在数组中搜索递增整数序列,java,arrays,random,iteration,Java,Arrays,Random,Iteration,任务如下: 创建一个程序,通过随机生成的值介于25和225之间的整数的200元素数组进行查找。程序应查找包含非递减值的n连续索引-例如: 28、57、88、153、201被认为是成功的 28、57、32、153、201被视为故障 输出应该类似于: An increasing consecutive run of 5 elements found at: Index 41 contains 28 Index 42 contains 57 Index 43 contains 88 Index 44
25
和225
之间的整数的200
元素数组进行查找。程序应查找包含非递减值的n
连续索引-例如:
28、57、88、153、201被认为是成功的
28、57、32、153、201被视为故障
输出应该类似于:
An increasing consecutive run of 5 elements found at:
Index 41 contains 28
Index 42 contains 57
Index 43 contains 88
Index 44 contains 153
Index 45 contains 201
有很多方法可以完成这项任务我在下面提供了一个逐步解决方案。解决方案
首先,应用给定的信息(下限、上限、数组大小)
将n
设置为任意值。我将使用5进行演示
int n = 5;
创建一个计数器
变量以记录找到的连续整数数。进一步,我们将添加逻辑,以便在每次数字序列不起作用时重置计数器
int counter = 0;
开始迭代。为
循环创建一个,用指定边界之间的“200”元素填充数组
for(int i = 0; i < set.length; i++){
set[i] = (int)(Math.random() * (max - min + 1) + min);
第一个if
语句:每次序列符合模式时,它都会将“counter”增加1,但当比较失败时,它会重置回0
if(i > 0){
if(set[i] >= set[i-1]){counter++;}
else{counter = 0;}
}// End if
现在创建一个while语句,当计数器的值等于n
的值时激活该语句。这将打印语句在:
中找到的5个元素的连续递增运行,然后导致for循环
while(counter == n){
System.out.println("An increasing consecutive run of " + n + " elements found at:");
现在设置这个循环,只需打印成功的n
行
for(int j = i - n; j < i; j++){
System.out.println("Index " + j + " contains " + set[j]);
} //End for
只要关闭while和for循环,程序就完成了
} //End while
} //End for
您的问题只包含需求-它并没有显示您自己为解决此问题所做的任何努力。请添加您对此问题的尝试-因为此网站不是免费的“我们为您(家庭)工作”服务。除此之外:请转到第页了解如何/问什么。Thanks@azro向下滚动一点,你会发现我自己已经回答了这个问题,只是想分享我的知识。如果这里不需要,很抱歉,我还是一个新手。@Alex如果您已经有了工作代码,那么还有另一个堆栈交换站点供您使用。然而,如果你想把它贴在那里,请先熟悉一下所有这些。在这里发布工作代码并要求任何改进都可能被视为“过于宽泛”@PatrickParker我并不是在要求改进。我刚刚注意到,在发布之前的一个主题时,有一个选项可以回答你自己的问题,我想“嘿,我知道怎么做,不妨分享一下——这可能会帮助其他人”。
for(int j = i - n; j < i; j++){
System.out.println("Index " + j + " contains " + set[j]);
} //End for
return;
} //End while
} //End for