1017. A除以B (20)
时间限制
100 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
本题要求计算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
// B
//
// Created by Tong on 7/19/16.
// Copyright © 2016 TongHdj. All rights reserved.
//
#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
string A;
int B;
cin>>A>>B;
if(A.length() <= 20) {
long aLong = atoi(A.c_str());
cout<<aLong/B<<" "<<aLong%B<<endl;
}else {
int dA = 0;
string result = "";
for (int i = 0; i < A.length(); i++) {
dA = dA * 10 + (A[i] - '0');
if (dA >= B) {
int resTemp = dA / B;
char str[10];
sprintf(str,"%d",resTemp);
result += str;
dA = dA % B;
}else {
if (result != "") {
result.append("0");
}
}
}
cout<<result<<" "<<dA<<endl;
}
return 0;
}