本题要求计算 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; }