码迷,mamicode.com
首页 > 其他好文 > 详细

PAT Basic 1017 A除以B (20) [数学问题-?整数运算]

时间:2020-02-06 20:06:19      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:hid   解题思路   tps   ios   log   题目   引用   dde   erase   

题目

本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成?。
输?格式:
输?在1?中依次给出A和B,中间以1空格分隔。
输出格式:
在1?中依次输出Q和R,中间以1空格分隔。
输?样例:
123456789050987654321 7
输出样例:
17636684150141093474 3

题目分析

已知一个不超过1000位的数字N,和一个1位的正整数,求商和余数

  • 因为N不超过1000位,所以看做大整数处理

解题思路

  1. 大整数除法,余数使用引用传入,返回商

Code

Code 01

#include <iostream>
using namespace std;
string div(string a, int b, int &r) {
    string c;
    for(int i=0; i<a.length(); i++) {
        int temp = a[i]-'0';
        r = r*10+temp; //本轮被除数
        if(r<b) c.push_back('0');
        else {
            c.push_back(r/b+'0');
            r=r%b;
        }
    }
    while(c[0]=='0'&&c.length()>1) {
        c.erase(c.begin());
//      c.erase(0,1); //这种方式也可以
    }
    return c;
}
int main(int argc,char * argv[]) {
    string A;
    int B;
    cin>>A>>B;
    int r=0;
    string s = div(A,B,r);
    printf("%s %d",s.c_str(),r);
    return 0;
}


PAT Basic 1017 A除以B (20) [数学问题-?整数运算]

标签:hid   解题思路   tps   ios   log   题目   引用   dde   erase   

原文地址:https://www.cnblogs.com/houzm/p/12269725.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!