PATB1017 A除以B

简介: PATB1017 A除以B

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;
}

结果:

2018122814580746.png

目录
打赏
0
0
0
0
3
分享
相关文章
|
3月前
|
计算一个数的 n 次方
【10月更文挑战第23天】计算一个数的 n 次方。
58 3
仅用10MB内存,你能从100亿个数中找到中位数吗?
大家好,我是小米,一名热爱技术分享的程序员。今天探讨如何在内存有限(仅10MB)时找到100亿个整数的中位数。面对庞大的数据量(约400GB)及内存限制,我们将采用分治策略:先依据整数的最高二进制位将数据分为非负数与负数两个文件,逐步缩小范围直至能在内存中处理。当内存充足时,可直接加载所有数据并排序找到中位数。这一问题不仅考验算法能力,也是处理大数据时资源管理的关键。
238 13
PTA-求3×4数组中大于等于平均值的元素的和
求3×4数组中大于等于平均值的元素的和
106 1
华为机试HJ15:求int型正整数在内存中存储时1的个数
华为机试HJ15:求int型正整数在内存中存储时1的个数
SQL内一个值除以一些字段的和 求百分比
SQL内一个值除以一些字段的和 求百分比
172 0
统计正数和负数的个数然后计算这些数的平均值 (15 分)
统计正数和负数的个数然后计算这些数的平均值 (15 分)
292 0
h0125. 求sum(2) (15 分)
h0125. 求sum(2) (15 分)
71 0
单位换算】存储单位(bit Byte KB MB GB TB PB EB ZB YB BB)时间单位(ms μs ns ps)长度单位(dm cm mm μm nm pm fm am zm ym)
单位换算】存储单位(bit Byte KB MB GB TB PB EB ZB YB BB)时间单位(ms μs ns ps)长度单位(dm cm mm μm nm pm fm am zm ym)
649 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等