1017 A除以B (20)

1017 A除以B (20)

題目要求

作者 單位 時間限制 內存限制 代碼長度限制
CHEN, Yue PTA聯盟 200ms 64MB 16KB

題目內容:

本題要求計算A/B,其中A是不超過1000位的正整數,B是1位正整數。你需要輸出商數Q和餘數R,使得A = B * Q + R成立。

輸入格式:

輸入在1行中依次給出A和B,中間以1空格分隔。

輸出格式:

在1行中依次輸出Q和R,中間以1空格分隔。

輸入樣例

123456789050987654321 712345

輸出樣例

17636684150141093474 3

代碼

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

int main(int argc, char const *argv[])
{
    string number;
    int b,k,i,d;
    cin >> number >> b;
    int bit = number.length();
    if (bit == 1)
    {
        cout << (number[0]-48) / b << " "  << (number[0]-48) % b;
        return 0;
    }
    if ((int)number[0] < b + 48)
    {
        k = (int(number[0])-48) * 10;
        i = 1;
    }
    else
    {
        k = 0;
        i = 0;
    }
    for (; i < bit; i++)
    {
        k = k + int(number[i])-48;
        cout << (k/b);
        d = k % b;
        k = d * 10;
    }
    cout << " " << k/10;
    return 0;
}

一些需要注意的地方

  • 其實就是按照插法法則計算就好了。
  • 這個代碼寫的不怎麼美觀,感覺需要改進。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章