高精度除法

标签: 高精度除法
3人阅读 评论(0) 收藏 举报
分类:

【题目描述】

计算 n/m 的值,设 n,m 为整数,n 的长度小于等于 1000,m 的长度小于等于 15 位,要求精确到小数点后 500 位。如果

整数位为零,则省略小数点前的零

【输入】

两行,每行一个整数

【输出】

一行,保留 500 位小数的实数。

【样例输入】

355

113

【样例输出】

3.14159292035398230088495575221238938053097345132743362831858407079
6460176991150442477876106194690265486725663716814159292035398230088
4955752212389380530973451327433628318584070796460176991150442477876
1061946902654867256637168141592920353982300884955752212389380530973
4513274336283185840707964601769911504424778761061946902654867256637
1681415929203539823008849557522123893805309734513274336283185840707
9646017699115044247787610619469026548672566371681415929203539823008

849557522123893805309734513274336

========================题解=====================

高精度除法。

观察数据,被除数<=1000位需要用数组存储,而除数<=15位,可以用long long存储,所以本题为高精除以低精。

首先,把被除数用char数组读入后再转为int数组,注意这里要正序存储。之后用一个变量来存每步运算的中间值,之后用每一位去除以除数,注意这里的每一步除法的被除数都是本位的值加上上一步除法所得的余数的10倍,这里的余数就是那个中间值。在答案数组中存储本次除法所得的商,再把中间变量的值更新为本次运算的余数。

本题可以将整数部分与小数部分分开处理。

处理完整数部分后,去除答案数组中的前导零再输出,之后单独输出小数点。

小数部分的处理方法与整数部分的类似,只是每次运算的被除数就是上次运算的余数的10倍。本题要求精确到小数点后500位,所以循环终止条件为500即可。

最后再输出小数部分。



查看评论

高精度之高精度除法(高精除以高精)

好像NOIP并不会用到,但是作为强迫症的我还是坚持学了。高精度除以高精度我所知道的有两个思路:...
  • S_Wiper
  • S_Wiper
  • 2017年05月30日 16:09
  • 2795

(C语言)高精度除法

题目描述 高精度除法:给定一个很大很大的数字,用它来除以一个 int 或 long 范围内的整数。  输入 输入包括多组测试数据。 对每组测试数据,在一行中给出一个整数N(0 ...
  • YiMo_Fan
  • YiMo_Fan
  • 2017年04月22日 21:54
  • 1103

大数,高精度计算---大数除法

大数是算法语言中的数据类型无法表示的数,其位数超过最大数据类型所能表示的范围,所以,在处理大数问题时首先要考虑的是怎样存储大数,然后是在这种存储方式下其处理的实现方法。 一般情况下大数的存储是采用字...
  • hitwhylz
  • hitwhylz
  • 2013年08月01日 13:16
  • 14229

大数除法(高精度除法)解题日记 (c++源代码)

date:20100612一开始用模拟除法写了一个,用到了加法,减法,乘法,本来还打算用二分法进行优化的,可惜程序一直没有调试对。我暂时解决不了。今天用除法当减法来算。。写了一个程序。。两个数相近。。...
  • luishen
  • luishen
  • 2010年06月12日 21:06
  • 21008

高精度除法分析及代码

算法分析    高精度除法, 这个和加减乘一样,我们都要从手算的角度入手。举一个例子,比如 524134 除以 123。结果是4261  第一位4的来源是 我们把 524和123对齐,然后进行循环...
  • u014542643
  • u014542643
  • 2017年04月13日 16:30
  • 389

C语言 高精度除法

#include #include int len1,len2; char s1[905],s2[905]; int re[905]; void sub() {...
  • u014571355
  • u014571355
  • 2014年05月02日 14:43
  • 2145

高精度除法(大数相除)

高精度除法(高除高)#include #include #include #include #include using namespace std; int a[101],b[101],c[101]...
  • zhhe0101
  • zhhe0101
  • 2016年05月10日 19:54
  • 2073

高精度除法

高精度除法是4则运算中最难的了。 但是只要解决了高精度除法,那么高精度...
  • u012501262
  • u012501262
  • 2014年04月07日 11:03
  • 572

高精度除法(高精除以低精)——一步一步算法篇

高精度除法(高精除以低精)利用0~9次的循环减法模拟除法的过程,并计数,从而得到商的值。#include #include #include using namespace std; int main...
  • zhhe0101
  • zhhe0101
  • 2016年05月15日 19:49
  • 1252

python实现无限精度除法运算

python3的int支持超大数的乘法运算,但是除法运算貌似还没有实现无限精度。对于浮点数乘法可以扩大转换为整数,运算完毕以后再缩小保存为str,即可实现高精度,但是对于除法,这种方法貌似行不通。 ...
  • cidplp
  • cidplp
  • 2013年11月23日 17:38
  • 2107
    个人资料
    等级:
    访问量: 0
    积分: 334
    排名: 0
    文章存档