//PAT1017
//模拟人工手算
#include <iostream>
#include <string>
using namespace std;
void div_string(const string& str, int n, string& quotient, int& remainder)
{
quotient.clear();
remainder = 0;
int cur = 0; //用于除以 除数 的值
for (int i=0; i<str.length(); i++)
{
cur = str[i]-'0' + cur * 10; //从str的第一位开始生成cur
quotient.push_back( cur / n + '0' ); //生成一位商数
cur %= n;
}
remainder = cur; //最后留下余数
}
int main()
{
string nstr;
int n;
cin>>nstr>>n;
string quotient; //商数
int r; //余数
div_string(nstr, n, quotient, r);
if ( quotient[0] == '0' ) //若第一位上0
{
if ( quotient.length() == 1 ) //商数为0
cout<<"0";
else
cout<<quotient.substr(1); //输出除0后的部分
}
else
cout<<quotient;
cout<<" "<<r;
return 0;
}
转载于:https://www.cnblogs.com/bugfly/p/3917756.html