c/c++语言开发共享C中的斐波纳契数列

这是预期的输出:

替代文字https://sofzh.miximages.com/c/f1lfuh.jpg

我们要制作一个计算Fibonacci序列的C程序。 我们最多只允许3个变量,我们不允许使用循环。 而且我不知道该怎么做以及如何开始。

我希望你们能帮助我。 :/

    假设您使用32位无符号整数,第48个Fibonacci数将导致整数溢出。 这使得使用具有预先计算的所有值(手动)的查找表是完全可行的。

    使用递归:

    C中的斐波纳契数列


    C / C ++语言版本:

    int fib(int a) { if (a == 0) return 0; if (a == 1) return 1; return fib(a - 1) + fib(a - 2); } 

    应用此答案评论的建议:

    C语言版本:

     /* * -1 is a error handler */ int fib(int a) { if (a < 0 || a > 47) return -1; if (a == 0) return 0; if (a == 1) return 1; return fib(a - 1) + fib(a - 2); } 

    C ++语言版本:

     int fib(int a) { if (a < 0) throw new std::out_of_range("Fibonacci is not defined for negative sign values."); if (a > 47) throw new std::overflow_error("Fibonacci for this value was overflow the integer."); if (a == 0) return 0; if (a == 1) return 1; return fib(a - 1) + fib(a - 2); } 

    我怀疑如果你不能使用你的教授/老师想要你使用递归的循环。 否则,只需要查找正确的公式,这在编程类中是没有意义的。

    如果允许递归,我强烈建议您阅读本教程(假设您不熟悉它)。

    如果不允许循环和递归,请选择斐波那契序列定义并手工完成……这是无聊的无聊和无趣,但它是这些限制中最直接的解决方案。

     a = 0; // 0 b = 1; // 1 a = a + b; // 1 b = a + b; // 2 a = a + b; // 3 b = a + b; // 5 

    等等:b保存第n个和第(n-1)个数字。 (复制 – 粘贴a = a+b; b = a+b;您需要多少次…)允许复制粘贴代码片段?

    ……( 编辑 )……

    当然,这个答案只是说明如果我们放了太多的rescrictions,那些嘲笑的东西会得到什么。 如果你不知道递归,你必须明确地学习它。 或者坚持精细数学(如其他答案所示),但递归是程序员应该知道的强大工具,并且递归方法比使用数学“技巧”更直观。

    使用https://www.research.att.com/~njas/sequences/b000045.txt作为数据文件;)

    你可以在这里复制

     long double f(short N) { double phi = (1+pow(5,0.5))/2; return ceil((pow(phi,N) - pow(1-phi,N))/pow(5,0.5)); } 

    当然,它只是数学,但它确实计算了fib(N)没有递归和循环..你仍然需要一种方法来打印fib(1).. fib(n)的所有值虽然

    老师想要的可能是递归。

    由于不允许循环和递归,

     int fib(int n) { int fk1 = 0, fk0 = 1; main_sub3: fk1 += fk0; fk0 = fk1 - fk0; if (n > 0) { -- n; goto main_sub3; 

    * 猛禽 *

      以上就是c/c++开发分享C中的斐波纳契数列相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/549443.html

      (0)
      上一篇 2021年1月14日
      下一篇 2021年1月14日

      精彩推荐