题目描述
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。
输入描述:
输入在1行中依次给出A和B,中间以1空格分隔。
输出描述:
在1行中依次输出Q和R,中间以1空格分隔。
输入例子:
123456789050987654321 7
输出例子:
17636684150141093474 3
思路:由于被除数的位数可以是1000位
没有这么大的数值类型,所以转换为字符串,手动计算的除法方式
#include<iostream>
using namespace std;
int main(){
char str[10001];
int Y=0,S,C,current=0;
cin>>str>>C;
for(int i=0;str[i]!='\0';i++)
{
//当前的被除数
current=Y*10+str[i]-'0';
//当前的商
S=current/C;
//当前的余数
Y=current%C;
if(i==0&&S==0)
continue;
else
cout<<S;
}
cout<<" "<<Y<<endl;
return 0;
}