美文网首页
1017A除以B

1017A除以B

作者: advanced_slowly | 来源:发表于2019-09-29 17:55 被阅读0次

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

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

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

输入样例:
123456789050987654321 7
输出样例:
17636684150141093474 3

动态数组实现

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

int main()
{
    string A;
    int B;
    cin >> A >> B;
    vector<int>vec;
    int tmp = (A[0] - 48);
    for (size_t i = 0 ; i < A.size() ; )
    {
        vec.push_back(tmp / B); //将每一位数的商保留
        i++;
        if (i == A.size())
        {
            break;
        }
        tmp = tmp % B * 10 + A[i] - 48;
    }
    if (vec[0] || A.size() == 1)
    {
        cout << vec[0];
    }
    for (size_t i = 1 ; i < vec.size() ; i++)
    {
        cout << vec[i];
    }
    cout << ' ' << tmp % B <<  endl;
    return 0;
}

这题本来很容易的,但是粗心却很容易犯错。一开始我的实现是partialy accept的。为什么是partialy accept呢?因为一开始我的实现还有没考虑到A恰巧是一位数并且商为0的情况。所以在输出商时多一个判断。正确答案如下:

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

int main()
{
    string A;
    int B;
    cin >> A >> B;
    int arr[1024] = {0};
    int tmp = (A[0] - 48);
    for (size_t i = 0; i < A.size(); )
    {
        arr[i] = tmp / B;   //将每一位数的商保留
        i++;
        if (i == A.size())
        {
            break;
        }
        tmp = tmp % B * 10 + A[i] - 48;
    }
    if (arr[0] != 0 || A.size() == 1)
    {
        cout << arr[0];
    }
    for (size_t i = 1; i < A.size(); i++)
    {
        cout << arr[i];
    }
    cout << ' ' << tmp % B << endl;
    return 0;
}

相关文章

  • 1017A除以B

    问题描述:本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q...

  • 除和除以的区别

    a除b是 b除以a 就是b/a; a除以b 是a/b;

  • 1017 A除以B

    本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 ...

  • 小学数学最容易出错的16个小细节

    1.除和除以的区别 a除以b或a被b除,列式为:a÷b a除b或用a去除b,列式为:b÷a 2.半圆的周长≠圆周长...

  • 1017.A除以B

    题目描述 本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A ...

  • pat考试-A除以B

    题目描述: 本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A...

  • PAT-B 1017 A除以B(C语言)

    题目 链接:PAT (Basic Level) Practice 1017 A除以B 本题要求计算 A/B,其中 ...

  • B1017 A除以B (20分)

    /*题意:1、高精度除法A是不超过1000的整数,B是一位数,所以你需要输出商和余数R 解题:1、结构体2、逆着赋...

  • PAT Basic 1017 A除以B

    题目 本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和...

  • 1017. A除以B (20)

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

网友评论

      本文标题:1017A除以B

      本文链接:https://www.haomeiwen.com/subject/ylyzyctx.html