**
PAT初级1017 A除以B
**
题目:
思路:
利用C++string特性以及string和long的相互转换,模拟手写除法操作,最好1位1位的模拟,然后最后判断除数第一个位是否输出(0xxx和xxx)
代码:
# include <iostream>
# include <cstring>
using namespace std;
int main()
{
string A="",Q="";
int B=0,R=0;
cin>>A>>B;
int len= A.size();
long num=0;
for(int i=0;i<len;i=i+1)
{
num = atol((std::to_string(R)+A.substr(i,1)).c_str());
R = num%B;
Q = Q + std::to_string(num/B);
}
if(len>1&&atol(A.substr(0,1).c_str())<B)
{
cout<<Q.substr(1,Q.size()-1)<<" "<<R<<endl;
}
else
{
cout<<Q<<" "<<R<<endl;
}
return 0;
}
结果:
plus:
1、string和int/long等的转换(搬运)
比较好的可用标准库的函数
https://blog.csdn.net/weixin_39485901/article/details/90475557
2、本题其它的解法示例(搬运)
https://blog.csdn.net/qq_43788669/article/details/87426763