关于求斐波那契数列溢出的问题

关于求斐波那契数列的问题:

img

img


我64位电脑,返回unsighed long long怎么才到47项就溢出了,不应该能算更多吗?谢谢!

输出函数是什么

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7658184
  • 除此之外, 这篇博客: C语言学习笔记01:C语言基础语法_变量类型_类型转换中的 2.6 2long long 类型变量的输入和输出 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • #if 1
    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <limits.h>
    
    // C语言常量
    #define MAX_VALUE 1000000
    
    // 4. long long 类型的输入和输出
    void test04()
    {
    	
    	// 1. long long 类型输出
    	// 有些编译器不支持 long long 类型
    	long long ll = 100;
    	printf("ll = %lld\n", ll);
    
    	unsigned long long ull = 100;
    	printf("ull = %llu\n", ull);
    
    	// 2. long long 内存大小
    	printf("long long 类型的内存大小: %d\n", sizeof(long long));
    
    	// 3. 取值范围
    	printf("long long 类型的最小值:%lld, 最大值:%lld\n", LLONG_MIN, LLONG_MAX);
    	printf("unsigned long long 类型的最小值: 0, 最大值: %llu\n", ULLONG_MAX);
    
    	// 4. long long 输入
    	long long llnumber = 0;
    	scanf("%lld", &llnumber);
    	printf("llnumber = %lld\n", llnumber);
    
    
    	unsigned long long ullnumber = 0;
    	scanf("%llu", &ullnumber);
    	printf("ullnumber = %llu\n", ullnumber);
    }
    
    // short < int(long) << long long
    
    int main(int argc, char *argv[])
    {
    
    	test04();
    
    	system("pause");
    	return 0;
    }
    #endif