我使用的是 64 位操作系统,因此我也无法正确打印第 46 个斐波那契数,该数小于 40 亿。
#include<cs50.h>
#include<stdio.h>
int main(void)
{
unsigned int n=50;
int array[n];
array[0]=0;
array[1]=1;
printf("%i\n",array[0]);
printf("%i\n",array[1]);
for(int i=2;i<n;i++)
{
array[i]=array[i-1]+array[i-2];
printf("%i\n",array[i]);
}
最佳答案
您必须使用 long long 作为数组的数据类型。因为您将存储整数范围的超出范围的数字。(-2,147,483,648 到 2,147,483,647) int i 的声明应该在 for 循环之前。
#include<stdio.h>
int main(void)
{
int n=50;
long long array[n];
array[0]=0;
array[1]=1;
printf("%lli\n",array[0]);
printf("%lli\n",array[1]);
int i;
for(i=2;i<n;i++)
{
array[i]=array[i-1]+array[i-2];
printf("%lli\n",array[i]);
}
}
关于c - 为什么我无法正确打印第 47 个斐波那契数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38300063/