本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。
输入格式:
输入在1行中依次给出A和B,中间以1空格分隔。
输出格式:
在1行中依次输出Q和R,中间以1空格分隔。
输入样例:123456789050987654321 7输出样例:
17636684150141093474 3
//
// main.cpp
// PAT
//
// Created by Grover Chen on 10/4/14.
// Copyright (c) 2014 Grover Chen. All rights reserved.
//
#include <iostream>
#include <cstdio>
#include <math.h>
#include <string>
using namespace std;
int main()
{
string a,q;
int i=0,j=0,k;
int b,r;
cin>>a>>b;
a[-1]='0';
if (a[0]-48<b && a[1]!='\0') {
i+=1;
}
while (a[i]!='\0') {
q[j++]=((a[i]-48)+(a[i-1]-48)*10)/b+48;
a[i]=((a[i]-48)+(a[i-1]-48)*10)%b+48;
i+=1;
}
r=a[i-1]-48;
for (k=0; k<j; k++) {
cout<<q[k];
}
cout<<" "<<r;
return 0;
}
由于A位数为1000位以内,只能采用字符串处理的方式。