【问题标题】:Java - Sum of prime numbers of random-generated array-valuesJava - 随机生成的数组值的素数之和
【发布时间】:2018-10-30 14:58:09
【问题描述】:

我是 Java 的初学者,我有一个任务要做,从随机生成的数组值中计算素数的总和。

所以,我被告知我应该有 3 个课程:

1) MyArray - 我已经写过这段代码:

...
public int[] createArray(int n) {
    int[] a = new int[n];

    for (int i = 0; i < a.length; i++) {
        a[i] = rnd.nextInt(10);
    }
    return a;
}
...

2) IsPrime - 我应该检查一个数字是否是素数。问题是我不知道如何将数组从 MyArray 连接到 IsPrime 类。我从一个布尔方法 checkPrime 开始,它有一个来自 MyArray 类的对象 m 作为参数,但我不知道如何继续,如何从 IsPrime 类访问数组。

感谢任何给定的意见和建议。谢谢!

附: 我的第三类 Run.java 有主方法。

【问题讨论】:

  • 你能分享你的代码,或者至少是方法签名吗?这将使问题更加清晰,并有助于我们为您提供帮助
  • 3 个类还是 3 个方法?
  • @Mureinik 我没有太多代码。在 MyArray.java 中,我只有我之前编写的代码,之后只有另一个方法 public void print(int[] a),我只打印数组的值。在第二个类 - IsPrime.java 我只有这个:public boolean checkPrime(MyArray m),我不知道如何继续......
  • @suvojit_007 3 个不同的类:MyArray.java 我用随机值填充数组,IsPrime.java 我应该检查一个数字是否是素数,Run.java 我有主-方法并打印素数之和。
  • array 怎么可能是素数?

标签: java oop random primes


【解决方案1】:

基本上应该是这样的:

MyArray myArray = new MyArray();
IsPrime isPrime = new IsPrime();

int sum = 0;
for(int num : myArray.createArray(20)){
    if(isPrime.checkPrime(num)){
        sum += num;
    }
}

System.out.println(sum);

将其放入 Run 类的 main 方法中

【讨论】:

    【解决方案2】:

    你应该在你拥有数组的类中声明。 在 isPrime 类中,您应该声明一个方法,该方法对参数 int[] 中接收的所有素数求和。 作为一个想法,为了更快,您可以使用 ForkJoinPool 创建多个线程,但我认为这不是您目前的主要目标。

        public class YourClass{
    
            private int[] MyArray;
    
        //Constructor
        //Methods
    
        //Getter of MyArray
            public int[] getMyArray(){
                return this.MyArray;
            }
        };
    

    【讨论】:

      【解决方案3】:

      你可以像下面这样从 Run Class 调用 IsPrime 方法

      Class Run {
      
          public static void main(String[] args]) {
      
              IsPrime ip=new IsPrime();
      
              int sum= ip.checkPrime();
      
              System.out.print(sum);
      
          }
      }
      
      
      Class IsPrime {    
          public int checkPrime(int length){ MyArray m=
          MyArray ();  int[] arr = m.createArray(5);
      
          //iterating arr and call to isPrime() method
      
          }
      
          public boolean isPrime(int num){ 
      
              // prime checking logic  
          }  
      }
      

      【讨论】:

      • 我正在使用手机写作。请忽略格式问题
      猜你喜欢
      • 1970-01-01
      • 2015-12-06
      • 2021-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-21
      • 2021-01-24
      • 1970-01-01
      相关资源
      最近更新 更多