gpt4 book ai didi

c - C中的最大数字数据类型

转载 作者:太空宇宙 更新时间:2023-11-04 05:57:47 25 4
gpt4 key购买 nike

所以我编写了一个简单的 C 程序,它根据用户指定显示第 n 个斐波那契数。我开始使用整数,显然效果不太好,所以我开始使用 float 、多头,最后是多头。即使有很长的多头,也有一个截止点,我得到无意义或不正确的输出,例如负数(在 n = 100 之前开始发生)。我能做些什么来扩大这个程序的范围,还是没有办法解决这个问题?

#include <stdio.h>
#include <stdlib.h>

int main()
{
long long term = 0;
long long val = 0;
long long first = 0;
long long second = 1;

printf( "Which fibonacci term (starting at 0) would you like to see? ");
scanf("%lld", &term );

if( term == 0 )
{
printf("%lld\n", first );

return 1;
}

if( term == 1 )
{
printf( "%lld\n", second );

return 1;
}

if( term > 1 )
{
for( int i = 1; term > i; i++ )
{
val = first + second;

first = second;
second = val;
}

printf( "%lld\n", val );

return 1;

}

return 0;

}

最佳答案

根据 ISO C99,long long 至少为 64 位 - 具有最大尺寸的标准整数数据类型。您的编译器可能允许更大的类型,这些由 intmax_t 定义和 uintmax_t<stdint.h> .

但是,我强烈建议使用 GMP 等 Bigint 库。使用 GMP,长整数和 float 的唯一限制是系统上可用的资源。

关于c - C中的最大数字数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24091937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com