有没有可能用更优雅的方法把下面的代码写到数组中?现在,每当我找到一个新的质数时,我都会初始化我的数组,这是我不喜欢的。如果有人对如何改进这一节有想法,我将不胜感激。
public class PrimeNUmber {
public static void main(String[] args) {
Prime prime = new Prime();
prime.FindPrime(10);
}
}
class Prime {
public void FindPrime(int n) {
int arraySize = 0;
for(int j = 2; j < n; j++) {
int count = 0;
for(int i = 1; i<= j; i++) {
if (j % i == 0) {
count++;
}
else {
}
}
if (count <= 2) {
System.out.println(j);
arraySize++;
int array[] = new int[arraySize];
array[arraySize-1] = j;
System.out.println(array[arraySize-1]);
}
}
}
}
Java数组是静态的,这意味着您必须事先知道它们的大小,并且一旦创建了它,您就不能调整它的大小。
因为你不知道你会找到多少个质数,所以你可以不使用数组。
然而,Java有其他的数据结构将适合于此,因为它们可以动态增长。
一个例子是ArrayList。您可以在不重新初始化的情况下向其添加所需的内容。
顺便说一下,现在的代码实际上会丢失所有找到的素数,但最后一个除外。
如果不允许使用use这样的类,您可以自己实现一个链表。
它将不是一个数组,但您可以向它添加任何您想要的内容。
如果你必须使用一个简单的Java数组,并且不允许你预先设置固定的大小(比如说保留一个100位),你唯一的选择就是每次你想要添加一个数字的时候创建一个新数组,在破坏旧数组之前把所有的旧数复制过来。
这将是非常低的效率,但再次强调-这取决于您是否有任何限制您的实现。
到目前为止,我掌握的是这样的: > 从另一篇SO文章中,我了解到存储在较大类型中的每个字节都必须是,并带有0xFF,因为它被转换为32位数字。我猜前导的24位是用s填充的(尽管我不知道为什么它不是用零填充的......用s前导难道不会改变数字的值吗?(2)毕竟与(-14)不同。)所以的目的是只抓取最后的8位(即整个字节)。 当左移8位时,这使得当ing时,中的8位位于最高有效位置,而中的8位位于最
4.13. 生成素数 这里我们要给出一个并行处理程序及之间的通信。这是一个非常大的课题,我们这里只是给出一些要点。 素数筛选是一个比较经典的问题(这里侧重于Eratosthenes素数筛选算法的并行特征)。它以全部的 自然后为筛选对象。首选从第一个素数2开始,后续数列中是已经素数倍数的数去掉。每次筛选可以得到 一个新的素数,然后将新的素数加入筛选器,继续筛选后面的自然数列(这里要参考算法的描述调整
我们有一个泽西1.18 jax-rs服务,它曾经使用jersey-json包来支持JSON。我们正在尝试迁移以使用MOXy,但不会破坏我们的JSON接口。不幸的是,jersey-json将单个元素列表编组为对象,将多元素列表编组为数组。默认情况下,MOXy将所有长度的列表编组为数组。我们知道MOXy编组的方式对客户端来说更容易使用,但是我们已经有很多客户端使用我们的接口,并且开始将单个元素列表编组
根据所提供的函数对每个元素进行迭代,将这些元素分成两个数组。 使用 Array.reduce() 创建两个数组的数组。 使用 Array.push() 将 fn 返回为 true 的元素添加到第一个数组,而 fn 返回 false 的元素到第二个元素。 const partition = (arr, fn) => arr.reduce( (acc, val, i, arr) => {
本文向大家介绍JavaScript函数采用数字n并生成前n个素数的数组,包括了JavaScript函数采用数字n并生成前n个素数的数组的使用技巧和注意事项,需要的朋友参考一下 我们需要编写一个JavaScript函数,该函数接受数字n,并返回包含前n个质数的数组。我们知道素数是只能被1整除的数,例如2、3、19、37、73等。 我们将首先编写一个检查给定数是否为质数的函数,然后运行循环以生成n个质
我想从数组创建所有可能的数组可能大于或小于。输出数组中的元素不必是唯一的。 例如: 根据这个数组 给定所需大小的函数,应返回: 例2 根据这个数组 给定所需大小的函数,应返回: 用Swift怎么做?