C 返回n==0?0:fib2(n,0,1)我能';我找不到?
我试图用单递归编写斐波那契,我发现了这段代码。但我第一次看到这个C 返回n==0?0:fib2(n,0,1)我能';我找不到?,c,recursion,fibonacci,C,Recursion,Fibonacci,我试图用单递归编写斐波那契,我发现了这段代码。但我第一次看到这个 返回n==0?0:fib2(n,0,1) 代码。什么是”?“和”:“,我找不到关于它的任何信息。那就是如果??:是C语言中的三元运算符。它类似于if-else语句。声明 unsigned long fib(unsigned int n) { return n == 0 ? 0 : fib2(n, 0, 1); } unsigned long fib2(unsigned int n, unsigned long p0, uns
返回n==0?0:fib2(n,0,1)代码>
代码。什么是”?“
和”:“
,我找不到关于它的任何信息。那就是如果??:
是C语言中的三元运算符。它类似于if-else
语句。声明
unsigned long fib(unsigned int n)
{
return n == 0 ? 0 : fib2(n, 0, 1);
}
unsigned long fib2(unsigned int n, unsigned long p0, unsigned long p1)
{
return n == 1 ? p1 : fib2(n - 1, p1, p0 + p1);
}
如果exp1
为真,则返回exp2
,否则将返回exp3
。相当于
return exp1 ? exp2 : exp3;
请不要以完全改变原文的方式修改问题。如果你想问别的问题,问一个新问题
if(exp1)
return exp2;
else
return exp3;