今日的知识点
1.为什么使用long long int?
斐波那契数列的特点是数值增长非常快,具体表现为:
- 第 10 项:55(int 类型足够)
- 第 20 项:6765(int 类型足够)
- 第 30 项:832040(接近 int 的最大值 2147483647)
- 第 40 项:102334155(超过许多系统中 int 的范围)
- 第 49 项:12586269025(远超过 int 的表示范围)
int类型的取值范围通常是 - 2147483648 到 2147483647,当斐波那契数超过这个范围时,就会发生整数溢出,导致结果错误。
而long long int类型能表示的范围大得多(通常是 - 9223372036854775808 到 9223372036854775807),足以容纳第 49 项甚至更大的斐波那契数,避免了溢出问题。
2.为什么使用%lld?
%lld是 C 语言中用于格式化输出long long int类型变量的格式控制符,它必须与long long int类型配套使用:
- 如果用%d输出long long int类型,会导致输出结果错误(格式不匹配)
- 反之,如果用%lld输出int类型,也会得到错误结果
#include<stdio.h>
int main()
{
int n;
int i;
scanf("%d",&n);
long long int arr[55];
arr[0]=0;
arr[1]=1;
for (i=2;i<n;i++) {
arr[i]=arr[i-2]+arr[i-1];
}
printf("%lld\n",arr[n-1]);
return 0;
}

京公网安备 11010502036488号