C语言高精度计算 整数减法

问题描述:

C语言高精度计算 整数减法
描述
两个十进制非负整数M和N,计算二者的差,既M-N.
M、N最多可以是长度为200位的整数.
输入
多组数据,每组数据先是一行表示M,然后一行表示N.M和N开头均无冗余的0.
输出
每行一个数,表示M-N,开头不能有冗余的0,既不能输出05这样的数,而应该直接输出5.
样例输入
9999
4567
0
1
样例输出
5432
-1
1个回答 分类:综合 2014-09-24

问题解答:

我来补答
用高精度算法来实现,即用数组或指针来储存数字,例如A〔20〕来储存a ,用B〔20〕来储存b,这样a 和b就可以是很大的数,再用一个C〔21〕来储存结果,为什么C要21呢,你知道,加法是要近位的,这里给出相加的伪代码,d =0/*用来存储近位*/,for i=0到19{c=A〔i〕+B〔i〕+d ,d =c/10,c=c%10,C〔i〕=c}if d 不等于0 C〔i+1〕=d ,再逆的输出C就可以了!编程要学会思考,现在你可以试试编下高精度乘法,例如可以输出100的阶乘!
再问: 为什么输入0 1 输出是-,
再答: 请问你是在什么环境下运行的,我是用 Visual Studio 2013 编译运行的,没有问题。另外,以下是编译之后的可执行文件。

 
 
展开全文阅读
剩余:2000
上一页:第九题,详解
下一页:gyyv