【问题标题】:Add Elements Returned from a List添加从列表返回的元素
【发布时间】:2012-01-06 01:16:01
【问题描述】:

我有一个在 Java 中使用 List 的算法,声明如下:

public static List<Integer> primeFactors(int numbers) {
    int n = numbers; 
    List<Integer> factors = new ArrayList<Integer>();
    for (int i = 2; i <= n / i; i++) {
        while (n % i == 0) {
            factors.add(i);
            n /= i;
        }
    }
    if (n > 1) {
        factors.add(n);
    }
    return factors;
}

我希望能够做的是获取此函数返回的素数并添加它们。我知道我可以使用

for (Integer integer : primeFactors(NUMBER))

对添加到List 的每个素数做一些事情,所以我猜当我添加它们时,答案会是这样的。这样的事情可能吗?

感谢所有帮助。

【问题讨论】:

  • 你的意思是列表元素的总和吗?
  • @AVD 我的意思是元素的总和。我知道这很糟糕,所以我的意思是:如果元素 [0]、[1]、[2] 分别包含 5、7、9,我想添加 5、7 和 9。

标签: java list addition


【解决方案1】:

所以基本上在循环外有一个变量,然后你可以这样做:

List list = primeFactors(NUMBER);
int sum = 0;
for(Integer number : list){
    sum += number;
}

在循环结束时,sum 将包含您想要的数字!

【讨论】:

    【解决方案2】:

    您可以在算法中添加所需的元素,因为您已经对元素进行了迭代。该函数将为 primeFactors(65) 返回 18 -> 5*13

        public static void main(String[] args) {
        int sumOfPrimeFactors = primeFactors(65);
        System.out.println(sumOfPrimeFactors);
    }
    
    public static int primeFactors(int numbers) {
        int sum = 0;
        int n = numbers;
        int i;
    
        for (i = 2; i <= n / i; i++) {
            while (n % i == 0) {
                sum += i;
    
                n /= i;
            }
        }
        if (n > 1) {
            sum += n;
        }
        return sum;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-18
      • 1970-01-01
      • 1970-01-01
      • 2020-09-03
      • 1970-01-01
      • 1970-01-01
      • 2016-02-01
      相关资源
      最近更新 更多