pat a除以b java_[PAT解题报告] A除以B (20)

转载 from http://tech-wonderland.net/blog/pat-basic-level-practice-1016-1020-solutions.html

解题思路: 直接模拟草稿纸上的除法计算就行了. 注意几个特殊case, 比如求得的商的首位0输出问题, 4 / 8 应该输出 0, 4, 但是14/8 应该输出1, 6, 而不是01, 6. 下面是可以AC的代码:

#include

#include

int gao(const std::string & A, int B, std::string *pstrResult, int *pQuite) {

int Q;

int len = A.size();

int curr = A[0] - '0';

for(int i = 1; i < len; ++i) {

Q = curr % B;

pstrResult->push_back(curr / B + '0');

curr = Q * 10 + A[i] - '0';

}

Q = curr % B;

pstrResult->push_back(curr / B + '0');

*pQuite = Q;

return 0;

}

int main() {

std::string A;

int B;

std::cin >> A >> B;

std::string strResult;

int iQuote;

int iRet = gao(A, B, &strResult, &iQuote);

if(iRet) {

}

if(strResult.size() > 1 && strResult[0] == '0')

std::cout << strResult.substr(1) << ' ' << iQuote << std::endl;

else

std::cout << strResult << ' ' << iQuote << std::endl;

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值