日期:2014-05-17  浏览次数:20627 次

一道题!
本帖最后由 yumen3501 于 2013-02-19 18:35:12 编辑
用户输入两个数字,计算两个数字的差值,每个数字不能超过1000位 .

.比如用户输入数字1为1 输入数字2位111111111111111111111111111111

那就是1-111111111111111111111111111111. 结果是-111111111111111111111111111110

问下 这中间类型如何转换? 数字2 明显超出int范围

------解决方案--------------------
这个涉及到“大数”运算的问题,一般都是用字符串来拆分计算,给你一个例子你参考一下

10000的阶乘
10000的阶乘结果远超过int类型了
------解决方案--------------------
如果你只是想完成这个功能,可以使用.NET4.0引入的BigInteger类型(程序集:System.Numerics.dll;命名空间:System.Numerics)
如果你想知道怎么实现,搜索 大数运算 等关键词,网上有很多内容可以参考
------解决方案--------------------
楼上正解.....
------解决方案--------------------
化成相同长度的字符串,然后由低位到高位相加减,注意“进位”。
------解决方案--------------------
引用:
这个涉及到“大数”运算的问题,一般都是用字符串来拆分计算,给你一个例子你参考一下

10000的阶乘
10000的阶乘结果远超过int类型了

学习