1017 A除以B(值得注意)

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

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

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

输入样例:
123456789050987654321 7



输出样例:
17636684150141093474 3

这道题一定要边处理边输出不如不过测试点4,不知道为什么,先记着吧。

#include <iostream>
#include<string>
using namespace std;
int tan(char ch) {//数字字符转数字。
    int a = ch - '0';
    return a;
}
int main()
{
    string a;
    int b,q,r=0;
    cin >> a >> b;
    q = tan(a[0]) / b;
    r = tan(a[0]) % b;

    if(a.size()==1||(a.size()!=1&&tan(a[1])>=b))//不输出首位0
        cout<<q;
    for (int i = 1; i < a.size();i++)
    {
        q = (tan(a[i]) + 10 * r)/ b;
        r= (tan(a[i]) + 10 * r) %b;
        cout<< q;

    }
    cout << " " << r;
    return 0;
}
原文地址:https://www.cnblogs.com/kalicener/p/12463297.html