美文网首页
高精度 - 高精度数除以低精度数

高精度 - 高精度数除以低精度数

作者: Veahow | 来源:发表于2017-04-16 15:00 被阅读0次

1 题目描述

输入位数小于5000位的被除数以及在整形数据范围内的除数,要求输出两者进行除法运算后的整数商,忽略小数。

1.1 输入

输入共两行,第一行为被除数,第二行为除数。

1.2 输出

输出整数商,忽略小数。

1.3 样例输入

20
5

1.4 样例输出

4

2 解题

解决思路

当参与除法运算的数值远远大于计算机所能直接计算的位数时,就需要采用特殊的高精度算法,一般来说,编写模拟手动计算的代码最为简单。平常我们手动进行加减乘除四则运算均遵循某种特定的规则,那么我们现在就需要从早已熟知的四则运算的笔算里抽象出某一特定的算法进行编码。


3 代码

#include <cstdio>
#include <cstring>

/*
    定义全局变量时编译器会自动初始化值为0
    在主函数内定义变量 若无初始化则为不确定的值
*/

char str[5000];
int dividend[5000]; //被除数
int divisor;    //除数
int d;  //中间计算的余数
int quotient[5000]; //整数商

int main()
{

    scanf("%s",str);    //使用字符数组接收输入便于处理高位的数值
    scanf("%d",&divisor);   //输入除数

    int l = strlen(str);    //需要知道字符数组存储了几位的数字
    for(int i = l - 1; i >= 0; --i)
        dividend[l-1-i] = (int)(str[i] - '0');
    //这里将字符数组倒转赋值给被除数数组,便于后续计算

    for(int i = l - 1; i >= 0; --i){
        d = d * 10 + dividend[i];
        quotient[i] = d / divisor;
        d = d % divisor;
    }
    //核心代码:模拟手动除法计算的过程

    while(quotient[l - 1] == 0 && l > 1)
        l--;
    //从最高位开始直到非零位才输出
    for(int i = l - 1; i >= 0; --i)
        printf("%d",quotient[i]);
    printf("\n");   //输出最后要记得换行,否则会Presentation Error

    return 0;
}

相关文章

  • 高精度 - 高精度数除以低精度数

    1 题目描述 输入位数小于5000位的被除数以及在整形数据范围内的除数,要求输出两者进行除法运算后的整数商,忽略小...

  • 高精度数(大整数)加法

    高精度数的加法 什么是高精度数? 高精度数是指一种数据范围超过long long 的数。 题目描述 求两个不超过2...

  • php高精度计算

    bcadd — 将两个高精度数字相加 bcdiv — 将两个高精度数字相除 bcmod — 求高精度数字余数 bc...

  • PHP算术及精度计算

    一、高精度算术运算符 bcadd 将两个高精度数字相加bccomp 比较两个高精度数字,返...

  • 各种数值类型之间的相互转换

    这里需要特别留意的是,高精度数据转换为低精度数据之前,必须确保高精度数据的值的范围已经在目标精度的范围内,否则在运...

  • 《Java编程思想》笔记——基础知识

    1.基本类型 高精度数值类型: BigInteger和BigDecimal是java中的高精度数值类型,由于它们是...

  • Java基础之数据类型

    8个基础类型 2个高精度数字 BigInteger、BigDecimal

  • Lesson 2:高精度地图

    从 Apollo 起步-Lesson 2:高精度地图 高精度地图 导航地图(Navigation Map)VS高精...

  • .net中的类型转换

    1、预定义 1.1 数字之间 显式:高精度 -> 低精度(概况描述,不准确) 隐式:低精度 -> 高精度(概况描述...

  • php精度计算函数

    最大支持3位精度计算,具体还没有研究 bcadd — 将两个高精度数字相加 bccomp — 比较两个高精度...

网友评论

      本文标题:高精度 - 高精度数除以低精度数

      本文链接:https://www.haomeiwen.com/subject/hzyaattx.html