本题要求计算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
// test
//
// Created by XiaoPeng on 17/2/23.
// Copyright © 2017年 XiaoPeng. All rights reserved.
//
#include <iostream>
#include <queue>
#include <iomanip>
#include <math.h>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int main(int argc, const char * argv[]) {
queue<int> line;
queue<int> final;
char A[2000] = {0};
int b;
cin>>A;
cin>>b;
for(int i = 0 ; A[i]!=‘\0’ ;i++)
{
char temp[2] = {0};
temp[0]=A[i];
line.push(atoi(temp));
}
int f = 0;
int x = line.front();
line.pop();
if(line.empty())
{
f = x;
}else
{
while(!line.empty())
{
int y = line.front();
line.pop();
int z = 10*x+y;
x = z%b;
final.push(z/b);
}
f = x;
}
if(!final.empty())
{
while(!final.empty())
{
cout<<final.front();
final.pop();
}
}
else{
cout<<0;
}
cout<<” “<<f;
}