我的教授给了我这个不完整的代码来填补这些内容。 答案是,如果我输入命令提示符,它应该显示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行......
有什么建议吗?
答案 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;
}