题目
本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。
输入格式:
输入在一行中依次给出 A 和 B,中间以 1 空格分隔。
输出格式:
在一行中依次输出 Q 和 R,中间以 1 空格分隔。
输入样例:
123456789050987654321 7
1
输出样例:
17636684150141093474
3
#include<iostream>
using namespace std;
int main(void){
string num; //把大数当做字符串输入
int b, //被除数
ret[1024], //整除结果
cal=0, //除法过程中每级的运算数
cnt=0; //整除结果数组的下标
cin>>num>>b;
for(int i = 0;i < num.length();i++){
cal = cal*10+num[i]-'0';
ret[cnt++] = cal/b;
cal = cal%b;
}
int i = 0;
if(ret[0] == 0 && cnt >1){ //最高位为0
i = 1;
}
for(;i <cnt;i++){
cout<<ret[i];
}
cout<<" "<<cal<<endl;
return 0;
}