我想通过循环生成一系列数字。
我的系列将包含诸如0、3、5、8、10、13、15、18等数字。
我试着记住提醒,试着把2和3相加,但是行不通。
有谁能帮我生成这个系列吗
您可以使用在3和2之间切换的增量,例如
for (i = 0, inc = 3; i < 1000; i += inc, inc = 5 - inc)
{
printf("%dn", i);
}
看起来序列从0开始,并使用3和2的增量。有几种方法可以实现这一点,但也许最简单的一种方法是以5为增量进行迭代(即3+2)并打印两个数字- position和position + 3。
下面是一些伪代码:i = 0
REPEAT N times :
PRINT i
PRINT i + 3
i += 5
- 迭代
i=0
将打印0
和3
- 迭代
i=5
将打印5
和8
- 迭代
i=10
将打印10
和13
- 迭代
i=15
将打印15
和18
- …等等
我使用了标记generate-series,这是一个功能强大的PostgreSQL函数。这可能被错误地标记了(?),但碰巧会有一个优雅的解决方案:
SELECT ceil(generate_series(0, 1000, 25) / 10.0)::int;
-
generate_series()
返回0, 25, 50, 75 , ...
(只能产生整数) -
ceil()
四舍五入到您想要的结果。 - 最终转换为整数(
::int
)是可选的。
0, 2.5, 5, 7.5, ...
按10.0
划分产生numeric
数据:SQL小提琴。