[关闭]
@MicroCai 2016-08-26T22:36:04.000000Z 字数 589 阅读 3945

两个超大整数相加

Archives 趣味题


题面

现有两个非常大的整数,目前所有用来表示数字的类型(指 int,long,float,double)都无法存储,该如何相加?


解法一

  1. 整数相加:12340223403234 + 12340823403234
  2. 假设整数所能表示的最大位数为 6 位,那么将整数拆分成位数为 5 的整数
  3. 【拆分】:12340 22340 3234 + 12340 82340 3234
  4. 【按组分段相加】:12340+1234022340+823403234+3234
  5. 【观察结果】:24680(位数为5);104680(位数为6);6468(位数为4);
  6. 【进位】:只有中间的那组有6位数,所以需要进位,让第一组的结果再加 1,得到
  7. 24681(位数为5);04680(位数为5);6468(位数为4),回到[观察]步骤;
  8. 【拼接】:将三组数字转换成字符串,拼接起来。
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注