题目:http://www.patest.cn/contests/pat-b-practise/1017
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。
输入格式:
输入在1行中依次给出A和B,中间以1空格分隔。
输出格式:
在1行中依次输出Q和R,中间以1空格分隔。
输入样例:123456789050987654321 7输出样例:
17636684150141093474 3
分析:大数相除问题。模拟手算。B是1位正整数真是太简单了。不过要注意商为0的情况,此外的首位的0不要输出
AC代码:
#include<iostream>
using namespace std;
int newnum(const string,const char);
int main()
{
ios::sync_with_stdio(false);
string A;
int B;
cin>>A>>B;
int R=A[0]-'0';
for(unsigned int i=0;i<A.length();i++)
{
if(i!=0||R/B!=0||A.length()==1)
cout<<R/B;
R%=B;
if(i<A.length()-1)
R=R*10+A[i+1]-'0';
}
cout<<' '<<R<<endl;
return 0;
}