我们知道一般编译器的int类型最大值约为21亿,至多能存储10位整数,大多数情况下足够我们使用了。但有时我们会遇到需要存储和运算更大整数的情况,例如斐波那契数列。我们通常把这类存储和运算超大整数问题称为大数运算或超长整数运算。
目录
一、从斐波那契数列说起
1.引例
题目: 开始,有一对小兔子。一个月后,小兔子变成大兔子,并且开始怀孕。两个月后,生出一对小兔子,这时共有两对兔子(一对大兔子,一对小兔子),同时大兔子又开始怀孕。三个月后,以前出生的小兔子变成大兔子,以前怀孕的大兔子又生出一对小兔子,这时共有三对兔子(两对大兔子,一对小兔子),同时大兔子又全部怀孕。…… 假设6年内都没有兔子死亡。
编写程序,输入n,计算n个月后,有多少对兔子。要求至少能计算6年内的兔子对数。
分析: 由题目可知,小兔子成长为大兔子需要一个月,一对大兔子从怀孕到生下一对小兔子需要一个月。开始,有一对小兔子;设n-1个月后,共有s对小兔子,b对大兔子(大兔子全部怀孕);则n个月后,就有b对小兔子,b+s对大兔子(上个月的小兔子全部变成大兔子了)。列表分析:
| n个月后 |
0 |
1 |
2 |
3 |
4 |
5 |
… |
| 小兔子(对) |
1 |
0 |
1 |
1 |
2 |
3 |
… |
| 大兔子(对) |
0 |
1 |
1 |
2 |
3 |
5 |
… |
| 总对数 |
1 |
1 |

本文探讨了在编程中遇到大数运算需求时,如何使用长整型、数组存储超长整数,以及通过算法优化处理斐波那契数列问题。还介绍了无符号和有符号超长整数运算,以及将浮点数转化为整数进行高精度计算的方法。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



