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

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

vector<int> divide(vector<int>& num, int x) {
    vector<int> result;
    int remainder = 0;
    for (int i = 0; i < num.size(); i++) {
        int dividend = remainder * 10 + num[i];
        result.push_back(dividend / x);
        remainder = dividend % x;
    }
    while (result.size() > 1 && result[0] == 0) {
        result.erase(result.begin());
    }
    return result;
}

int main() {
    int P;
    cin >> P;
    
    vector<int> num(1, 1);
    int S = 1;
    while (S % P != 0) {
        num = multiply(num, 10);
        S++;
    }
    
    vector<int> digits = divide(num, P);
    for (int i = 0; i < digits.size(); i++) {
        cout << digits[i];
    }
    cout << endl;
    cout << digits.size() << endl;
    
    return 0;
}
``
题目描述:小h的老师刚教了她做乘法她很喜欢形同P×S=1111这样的算式小h希望对一个给定的奇数PP100000000保证其个位数字不是5求一个整数S使得P×S=1111在给定的条件下解S必存在。小h希望你输出S的全部数字和乘积的数字位数位数不超过10000000位。输入:输入一行一个正整数代表问题描述中的P输出:输出两行一行是S的全部数字。第二行一个整数表示乘积的数字位数。样例输入:13样例输出

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

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