以下是用C++实现的解题代码:

#include <iostream>
#include <vector>
using namespace std;

vector<int> multiply(vector<int>& nums, int num) {
    int carry = 0;
    for (int i = 0; i < nums.size(); i++) {
        int product = nums[i] * num + carry;
        nums[i] = product % 10;
        carry = product / 10;
    }
    while (carry) {
        nums.push_back(carry % 10);
        carry /= 10;
    }
    return nums;
}

int main() {
    int N;
    cout << "请输入N: ";
    cin >> N;

    vector<int> result;
    result.push_back(1);  // 初始化为1

    int P = 1;
    while (result.size() < N) {
        P++;
        result = multiply(result, P);
    }

    cout << "P为:" << P << endl;
    cout << "N*P的位数为:" << result.size() << endl;

    return 0;
}

运行程序后,输入N的值,即可得到最小的P和N*P的位数

用C++解题:输入N找到最小的P使得NP=111111111111111111形如格式的数输出P与NP的位数用高精度

原文地址: https://www.cveoy.top/t/topic/ipk0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录