用c++怎么做100位以上数字的算术?

来源:百度知道 编辑:UC知道 时间:2024/05/17 23:24:15
比如888887354352534523452345234523445423452354234523464563456234562623452342645652462462646462524624978934758934785287345823749589237498573489572389045789347583495u8934759834758937458923457089235709382475893475304785347957329 * 888887354352534523452345234523445423452354234523464563456234562623452342645652462462646462524624978934758934785287345823749589237498573489572389045789347583495u8934759834758937458923457089235709382475893475304785347957329 = 多少
有什么好的数据结构和算法?

使用字符数组来表示数据,(当然,如果是十进制数,用4bit就足够了,用一个BYTE有点浪费,不过,这样方便计算)。

比如
// 第一个数
BYTE btValue1[1024];// 1024位的数据,每个BYTE表示一个十进制值,合起来构成一个1024位的数据。
// 第二个数
BYTE btValue2[1024];

BYTE btValueResult[2048]; // 记录结果。

计算过程就用一个个的函数来实现,这个应该就比较简单了,注意进位即可。

有,就是像我们平时算乘法那样,可以把每一位存放在数组里面

保存在字符数组里面,然后模拟人脑计算方法,写个函数列竖式去算...

这个需要大数。。 就是用一个字符型数组来表示一个很大的很长的数字。数组的每一位可以表示这个大数字的对应位。然后做乘法就是模拟我们平时的手工乘法过程。然后将答案同样存在一个字符型数组里面,输出就好了。