c - 如果我必须打印大量斐波那契数列,为什么我的打印斐波那契数列代码不起作用?

标签 c

这是我打印斐波那契数列的代码

 #include <stdio.h>
    #include <conio.h>

int main(void)
{
 long int i,firstno=1,secondno=1;

 printf("%d\n%d\n",firstno,secondno);
 for(i=0;i<8;i++){
     int temp = secondno;
      secondno = secondno+firstno;
        firstno = temp;

 printf("%d\n",firstno);
 }return 0;
 }

如果我必须打印前 90 个斐波那契数,它工作正常,但如果我必须打印 200000 个,它会开始给出大的垃圾值?为什么会发生这种情况?我该如何阻止这种情况并改进我的代码?

最佳答案

您赋予变量的值将超过 long int 的最大范围。所以这就是打印垃圾值的原因。

关于c - 如果我必须打印大量斐波那契数列,为什么我的打印斐波那契数列代码不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27330036/

相关文章:

c - Valgrind 和释放特殊指针数组

c - 堆栈内存地址区

复制一个 3 dim 数组本身

ios - 我可以在我的 Swift iPhone 应用程序中使用 C 语言吗?

c - 使用 char 指针分配

c 中结构的冲突类型

c - getchar() 函数不起作用

c - 在多个任务访问的函数中保留非静态变量值

c++ - VirtualLock 真的按照它说的做吗?

c - 什么 C 源代码将编译为针对 GOT 中另一个指针的调用 *get_func@GOTPCREL(%rip) 和 cmp?