int factorial(int n) {
return ( n==0 ? 1 : factorial(n-1)*n ) ;
}
VS
int factorial(int n) {
return ( n==0 ? 1 : n*factorial(n-1) ) ;
}
我想知道哪一个更喜欢使用。 他们之间有什么不同吗? 是否有一种情况,我们必须按照函数调用或变量计算的顺序来考虑,以实现更好的运行时间。
答案 0 :(得分:2)
没有区别。 C没有指定*
个操作数的执行顺序,因此对于任何表达式a * b
和b * a
,a
和b
实际上是等效的
答案 1 :(得分:0)
评估n
和f(n-1)
所需的顺序是什么,并且计算其中一个表达式与评估另一个表达式无关,时间是相同的。