用C++解题:输入N找到最小的P使得NP=111111111111111111形如格式的数输出P与NP的位数用高精度
以下是用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的位数
原文地址: https://www.cveoy.top/t/topic/ipk0 著作权归作者所有。请勿转载和采集!