计算此序列的公式是什么?

时间:2018-11-06 16:25:05

标签: c

我在C语言中一直遇到这个问题。 问题是: 编写程序以生成系列中的前n个项--- 2,5,9,..,20,27

我陷入了for循环部分。喜欢,换其他说法 例如:系列--- 5,9,17,29,45,... 我可以通过以下公式计算剩余序列:

for(i=0; i<n; i++)
{
    a=a+(4*i); //a is initialized to 5
    printf("%d", a);
}

谢谢。

3 个答案:

答案 0 :(得分:2)

这是您期望的吗?

#include <stdio.h>

int main(void)
{
    int a = 2, n = 10;

    for(int i = 0; i < n; i++)
    {
        printf("%d, ", a);
        a = a + i + 3;
    }
    printf("etc\n");

    return 0;
}

输出

$ gcc main.c -o main.exe; ./main.exe;
2, 5, 9, 14, 20, 27, 35, 44, 54, 65, etc

答案 1 :(得分:2)

看起来(i + 1)-st元素是通过添加一个递增的数字从第i个创建的:

  • a 0 = 2,d 0 = 3
  • a 1 = 2 + 3 = 5,d 0 = 4
  • a 2 = 5 + 4 = 9,d 0 = 5
  • a 3 = 9 + 5 = 14,d 0 = 6
  • a 4 = 14 + 6 = 20,d 0 = 7
  • a 5 = 20 + 7 = 27,d 0 = 8
  • ...等等

您可以通过在循环中递增d并将其添加到a的先前值来计算此结果。

根据Online Encyclopedia of Integer Sequences,可以使用以下封闭形式的表达式来计算此序列的元素:

n*(n+3)/2

注意:上述除法始终会产生一个整数值,因为nn+3之一将是偶数。

答案 2 :(得分:1)

如果我对您的理解正确,那么您正在寻找

$list_id = $this->_job->getListId();
$list =  $this->_MailChimp_obj->get('lists/' . $list_id . '/members', array(
    'fields' => array(
        'id',
        'email_address',
        'subscribed',
        'merge_fields'
    ),
    'count' => 50,
    'offset' => 0
));

它是n + 3,因为您将从3开始并从那里开始计数n次。