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; }
结果: