PTA_乙级_1017 A除以B(C++_高精)

本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。

输入格式:

输入在一行中依次给出 A 和 B,中间以 1 空格分隔。

输出格式:

在一行中依次输出 Q 和 R,中间以 1 空格分隔。

输入样例:

123456789050987654321 7

输出样例:

17636684150141093474 3

Code

#include<bits/stdc++.h>
using namespace std;
string str;
int a[1010], b[1010], c, yu;
void q()
{
    for (int i = 0; i < str.size(); i++)
        a[i] = str[i] - '0';
    for (int i = 0; i < str.size(); i++)
    {
        b[i] = (yu * 10 + a[i]) / c;
        yu = (yu * 10 + a[i]) % c;
    }
}
int main()
{
    int flag = 0;
    cin >> str >> c;
    q();
    for (int i = 0; i < str.size(); i++)
    {
        if (b[i] != 0)
            flag = 1;
        if (flag == 0)
            continue;
        else
            cout << b[i];
    }
    if (flag == 0)
        cout << 0;
    cout << " " << yu;
    return 0;
}
发布了228 篇原创文章 · 获赞 30 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43510916/article/details/104351151
今日推荐