2301_81042968 2024-07-18 11:37 采纳率: 77.8%
浏览 1

这个代码不会写,有没有人来看看,实在不会写了。各位来帮一下我。我。

img

img

img

img

img

img


这个代码不会写,有没有人来看看,实在不会写了。各位来帮一下我。

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-07-18 11:37
    关注

    引自免费微信小程序:皆我百晓生

    #include <iostream>
    #include <string>
    #include <vector>
    
    class Prime {
    private:
        int number;
        Prime* next;
    
    public:
        // 缺省构造函数
        Prime(int num, Prime* next = nullptr) : number(num), next(next) {}
    
        // 构造函数,动态分配空间
        Prime(const int* numArray, int numArraySize) {
            for (int i = 0; i < numArraySize; ++i) {
                this->number += numArray[i];
                if (i == 0 && this->number >= 1000000007) {
                    this->next = new Prime(1000000007);
                } else {
                    this->next = new Prime(this->number % 1000000007, this->next);
                }
            }
        }
    
        ~Prime() {
            delete next;
        }
    };
    
    class CipherMachine {
    private:
        Prime* primes;
        int size;
        vector<long long> decrypts;
    public:
        CipherMachine(const int* numArray, int numArraySize) {
            primes = new Prime[numArraySize];
            size = numArraySize;
            for (int i = 0; i < numArraySize; ++i) {
                primes[i].number = numArray[i];
                primes[i].next = nullptr;
            }
        }
    
        ~CipherMachine() {
            delete[] primes;
        }
    
        int Decrypt(long long bigNumber) const {
            for (int i = 0; i < size; ++i) {
                while (bigNumber > 0) {
                    int remainder = bigNumber % primes[i].number;
                    if (remainder == 0) return primes[i].number;
                    bigNumber /= primes[i].number;
                }
            }
            return -1;
        }
    
        void writeDecryption(string filename) {
            ofstream file(filename);
            if (!file.is_open()) {
                cerr << "Failed to open file" << endl;
                exit(1);
            }
            for (int i = 0; i < size; ++i) {
                file << primes[i].number << "*" << primes[i + 1].number << endl;
            }
            file.close();
        }
    };
    

    在这个解决方案中,我们创建了一个Prime类来表示链表中的单个质数节点。然后,我们创建了一个CipherMachine类,它包含一个链表来存储所有已知的质数以及它们之间的关系。此外,我们还实现了Decrypt函数来处理链表的遍历过程,并且提供了writeDecryption函数来将结果写入文件。

    请注意,这只是一个基本的实现,实际上可能会有一些优化的空间,例如可以考虑如何更快地查找能够分解大整数的质数等。此外,由于这是一个编程问题,所以这里没有涉及到任何复杂的图形或代码块,而是简单地描述了如何编写一个简单的密码机。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 7月18日