gpt4 book ai didi

c - C 中的长精确数字?

转载 作者:太空狗 更新时间:2023-10-29 16:12:13 25 4
gpt4 key购买 nike

我正在制作一个打印前 100 个卢卡斯数(它们类似于斐波那契)的程序,但最后几个数字不适合 unsigned long long int。我尝试使用 long double,但它并不精确,而且我得到的结果与我应该得到的结果有些不同。

这是一项家庭作业,我的老师明确指出我们不需要使用除 stdio.h 之外的任何其他库。

我尝试制作一种将字符串作为数字相加的方法,但这超出了经验,我真诚地怀疑这是我们必须要做的。

由于不精确,它看起来像这样:

#include <stdio.h>

int main()
{
long double firstNumber = 2;
long double secondNumber = 1;
long double thirdNumber;

int i;
for (i = 2; i <= 100; i += 1)
{
thirdNumber = secondNumber + firstNumber;
firstNumber = secondNumber;
secondNumber = thirdNumber;
printf("%Lf, ", thirdNumber);
}

return 0;
}

最佳答案

看起来你只需要加法。我看到了三种解决方法。

  • 如果您没有被禁止使用库,那么您会使用许多常用的 bigint 库之一。
  • 实现一个基于字符串的加法器。您基本上会实现您在 3 年级学到的加法方法。
  • 作为 hack,如果您的最大数字大约适合两个 unsigned long long int,那么您可以将您的数字分成最高有效数字和最低有效数字。我会走这条路。

关于c - C 中的长精确数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26292458/

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