几何序列印刷......吓坏了

时间:2015-12-29 02:39:56

标签: c numbers sequence

我的教授给了我这个不完整的代码来填补这些内容。 答案是,如果我输入命令提示符,它应该显示3 + 6 + ... + 48 = 93,确切。所以我输入了我的答案。见下文

命令提示符

3 2 5(输入.3 =第一个数字.2 =乘数.n =元素数量)

3 + 6 + 12 + 24 + 48 = 93

如果你想继续。等等......

以下问题。

<img style="width:auto; height:250px" src="http://i.imgur.com/lNB7QSt.jpg">

我的回答!!!

#include <stdio.h>

int main(void)
{
    int a, r, n;
    int s, ai, i;

    scanf("%d%d%d", &a, &r, &n);

    s = 0;
    ai = a;
    for (i = 0; _________) {
        _____________________
        _____________________
        _____________________
        ______________________
    }
    printf(" = %d\n", s);
    return 0;
}

你知道,我没有遇到“+”的问题,因为对于最后的元素,它不需要在数字后面加上“+”符号。所以我可以放(i!= n-1)以便有所作为。总之,你可以很容易地得到它。一切都很好......直到我看到(i = 0)无法改变,并且不能使用计算几何序列的特定元素的公式,因为公式通常是a = a r 第(i-1)。所以我尝试了另一种方式,比如“ai = ai + r * i”,但是这会产生元素的总和,而不是个体... i = 0对我来说是一个难度,我甚至无法改变它......他会把它标记为错误。 “for”循环内部的不完整行应该是4个LINES! (所以即使我在一行中制作了“else”和“else condition”,使其成为4行......

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

可能有不同的变体,这里有一个:

for (i = 0; i < n; i++) {
    printf("%s", i==0 ? "" : " + ");
    printf("%d", ai);
    s += ai;
    ai *= r;
}

另一种变体是将计算移动到循环中:

for (i = 0; i < n; i++, s += ai, ai *= r) {
    if (i > 0)
        printf(" + %d", ai);
    else
        printf("%d", ai);
}

答案 1 :(得分:-1)

解决此问题的方法之一如下。

#include <stdio.h>

int main(void)
{
    int a, r, n;
    int i=0; 
scanf("%d%d%d", &a, &r, &n);
   int ai=a;


for (i = 1; i <= n; i++) {

    a= a + (ai*i*r);
}
printf(" = %d\n", a);
return 0;
}