想出一个通过数字曲折的方程式

时间:2017-03-01 07:33:18

标签: algorithm

我开发了一个i = 1100的程序, 数字序列应该如下

 1, 100, 2, 99, 3, 98, ... 

基于第i个索引。出于好奇,有没有一个天才可以提出一个封闭的公式给出 ith索引

 f(i) = ?

您可以按照上述顺序找到合适的号码吗?

2 个答案:

答案 0 :(得分:3)

将函数f(i)作为表

  i | f(i)
  ---------
  1 |   1
  2 | 100
  3 |   2
  4 |  99
  5 |   3
  6 |  98
  .....

您可以将f(i)作为已关闭的公式

 f(i) = (i + 1) / 2 * (i % 2) + (101 - i / 2) * ((i + 1) % 2)

其中%代表余数

答案 1 :(得分:1)

int f(int i) {
    return i % 2 == 0 ? (i / 2) : 101 - (i / 2);
}

的结果;

1
100
2
99
3
98
4
...