-5

我想通过循环生成一系列数字。

我的系列将包含 0,3,5,8,10,13,15,18 等数字。

我尝试提醒并尝试添加 2 和 3,但它不会成功。

谁能帮我制作这个系列。

4

3 回答 3

2

您可以只使用在 3 和 2 之间切换的增量,例如

for (i = 0, inc = 3; i < 1000; i += inc, inc = 5 - inc)
{
    printf("%d\n", i);
}
于 2014-07-13T18:02:22.503 回答
1

看起来序列从零开始,并使用 3 和 2 的增量。有几种实现方法,但也许最简单的方法是以 5 的增量迭代(即 3+2)并打印两个数字 - 位置和位置加三。

这是一些伪代码:

i = 0
REPEAT N times :
    PRINT i
    PRINT i + 3
    i += 5
  • 迭代i=0将打印03
  • 迭代i=5将打印58
  • 迭代i=10将打印1013
  • 迭代i=15将打印1518
  • ... 等等
于 2014-07-13T18:04:05.490 回答
0

我被标签吸引了,这是一个强大的 PostgreSQL 功能。这可能被错误地标记了(?),但碰巧会有一个优雅的解决方案

SELECT ceil(generate_series(0, 1000, 25) / 10.0)::int;
  • generate_series()返回0, 25, 50, 75 , ...(只能产生整数)
  • 除以10.0产生numeric数据:0, 2.5, 5, 7.5, ...
  • ceil()四舍五入到您想要的结果。
  • 最后转换为整数 ( ::int) 是可选的。

SQL小提琴。

于 2014-08-24T01:49:50.367 回答