[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 <iostream>
#include <string>
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;
}

注意!此信息未认证,请谨慎判断信息的真实性!

全部评论
空

相关内容推荐

点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像 头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 2 评论
分享

全站热榜

正在热议