PAT1017
基础思路
本题使用基础数据类型会导致浮点错误,故应该用算法中对于大数据的转串模拟手算的思想来解,这种算法编写思路与手法应当熟练掌握:
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main(){
string str;
int num;
cin >> str >> num;
int res = 0;
vector<int> ans;
if(str.size() == 1 && str[0] - '0' < num) //处理被除数比除数小的情况
cout<<0<<" "<<str[0] - '0';
else{
for(int i = 0; i < str.size(); i++){ //模拟手算的过程
res = res * 10 + str[i] -'0' + 0;
if(res >= num){
ans.push_back(res / num);
res = res % num;
}else{
ans.push_back(0);
}
}
for(int i =0; i < ans.size(); i++){ //输出的过程
if( i == 0 && ans[0] == 0 )
continue;
cout<<ans[i];
}
cout<<" "<<res;
}
return 0;
}
结果: