A除以B (20)
时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小)
题目描述
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。
输入描述:
输入在1行中依次给出A和B,中间以1空格分隔。
输出描述:
在1行中依次输出Q和R,中间以1空格分隔。
输入例子:
123456789050987654321 7
输出例子:
17636684150141093474 3
算法思想: 大整数一位数除法;
遍历整个字符串,每次都用余数除以除数得到商的一个位数,输出,最后输出余数;
若第一次得到的商为0,则不输出。
代码;
#include <bits/stdc++.h>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main() {
string A;
int b,r;//r为余数
cin>>A>>b;
for(int i=0;i<A.size();++i)
{
r=r*10+A[i]-'0';
if(i==0)
{
if(r>b)
cout<<r/b;//输出商的一个数字
}
else
cout<<r/b;
r%=b;
}
cout<<" "<<r;
}