【问题标题】:Insert prime number into Linked List将素数插入链表
【发布时间】:2015-03-24 14:00:23
【问题描述】:

我无法编写一个完整的 c++ 程序,将 0 到 150 的素数按顺序插入到链表对象中。程序应该计算 - 元素的总和 - 元素的平均值

【问题讨论】:

  • 请注意,我们不会从头开始提供代码。如果您需要帮助,请向我们展示您所做的工作、您在代码中遇到的确切问题以及您希望程序执行的操作,并说明是否存在任何限制。阅读How do I ask a good question?
  • 我得到了“有人要求我做作业”的感觉。您是否对应该采取哪些步骤感到困惑?你有没有采取任何措施,却被困在某个地方?
  • 我想在链表中插入 0 到 150 的素数并计算这个链表元素的总和和平均值?
  • 您的问题是链表还是确定数字是否为素数?使用 std::list 作为你的容器。
  • 我可能会编写一些代码来将指定的数字插入到链表中。然后我会写一些代码来确定一个数字是否是素数。然后我会生成从 0 到 150 的数字,检查它们是否是素数,如果是,则将它们插入到链表中。

标签: c++ visual-c++ c++-cli objective-c++


【解决方案1】:

我怀疑你的作业是使用 std::list 来帮助你找到素数。对于从 2 到 150 的每个数字,将其除以您迄今为止找到的所有素数,如果没有一个素数除以您的数字而没有余数,那么您刚刚找到了另一个素数,将其添加到您的列表中并继续前进。这是代码,

#include <iostream>
#include <map>
#include <string>
#include <list>

int main(int argc, const char * argv[]) {

    std::list<int> primes;
    primes.push_back(2);      // start with first prime

    bool isPrime{false};
    for (int i=3; i<=150;++i) {
        isPrime=true;
        for (int n : primes) {
            if (i % n == 0)
            isPrime = false;
        }
        if (isPrime) primes.push_back(i);
    }

    int sum{0}, prod{1};
    for (int n : primes){
        sum += n;
        prod *= n;
    }
    std::cout << std::endl;
    std::cout << "The sum of primes is: " << sum << std::endl;
    std::cout << "The product of primes is: " << prod << std::endl;
}

【讨论】:

    猜你喜欢
    • 2018-08-02
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    • 2021-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多