交替递增序列

Set*_*hot 3 c recursion sequence

早上-

我需要一个可以产生以下类型的序列的函数:

1, -1, 2, -2, 3...
Run Code Online (Sandbox Code Playgroud)

尾递归函数是否是处理此问题的最佳方法?有没有办法迭代地执行此操作而不是递归?

eca*_*mur 10

这个序列有一个简单的非递归形式:

A[n] = (n + 1) / 2 - (n % 2 ? 0 : n)
Run Code Online (Sandbox Code Playgroud)

取决于索引.

  • @MohamedKALLEL是正确的,但大多数编译器都会为您应用该优化,因此通常不值得使代码不那么清晰. (2认同)