projecteuler.net解题记录,参考了肥猫的(第13题)

来源:互联网 发布:ar涂涂乐 源码 编辑:程序博客网 时间:2024/04/29 13:29
第13题:
Work out the first ten digits of the sum of the following one-hundred 50-digit numbers.
求100个50位数的和的前10位。

这个用python解决就太简单了,因为python内置了超大整数类型,直接加起来,转字符串,取前10位。

不过设想一下,对于不支持超大整数类型的语言来解决的话,肯定是每把个50位数字化成m个小的n整数(n根据语言不同而不同,比如无符号整数32位最大能表达4294967296,那么他来表达9位数应该是没有问题的,考虑到100个数相加后的溢出,分割成7位数应该没问题)。首先加相第一组数。第二组数向第一组数进位的最大可能是90。那么第一组数相加结果除去末两位数后是不变的。写一个循环算法,也可以解决任意大整数的相加问题。
原创粉丝点击