hanyf 发表于 2024-1-5 16:39:50

switch

#include<stdio.h>
long fib(int x)
{
    switch(x)
    {
      case 0:return 0;
      case 1:
      case 2:return 1;
    }
    return (fib(x-1)+fib(x-2));
}
main()
{
int x=6;
printf("%d\n",fib(x));
}
看不懂题目意思,球球了

FishC 发表于 2024-1-5 16:40:37

这段代码是用递归的方式计算斐波那契数列的第x个数,并打印出结果。

首先,我们来解释一下斐波那契数列。斐波那契数列是一个数列,从第三项开始,每一项都等于前两项之和。数列的前几项如下:0, 1, 1, 2, 3, 5, 8, 13, ...

现在我们来解释一下代码的逻辑:

1. 首先,在`switch`语句中对参数`x`的值进行判断。
2. 如果`x`等于0,则直接返回0。
3. 如果`x`等于1或2,则直接返回1。
4. 如果`x`不是上述情况,则通过递归调用`fib(x-1)`和`fib(x-2)`来计算第x个斐波那契数的值。
5. 最后,将计算结果打印出来。

根据代码中的`main`函数中的参数`x=6`,我们可以推测该代码的目的是计算斐波那契数列的第6个数。

你上面提到看不懂题目意思,不清楚具体想问什么问题,如果还有其他问题,请告诉我,我会尽力帮助你。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

jackz007 发表于 2024-1-5 16:49:14

    switch(x)
    {
      case 0:return 0;
      case 1:
      case 2:return 1;
      翻译成 if ... else 语句就是:
      if(x == 0) return 0                ;
      else if(x == 1 || x == 2) return 1 ;
页: [1]
查看完整版本: switch