一道c语言程序设计题 急...

来源:百度知道 编辑:UC知道 时间:2024/06/23 16:00:18
把此式 Sn=a+a*r+a*r*r+...+a*r*r..*r (n-1个r) 做成函数
然后计算S=S1+S2+...Sn
n,a,r从键盘输入

谢谢各位不吝赐教!我急...

#include <stdio.h>

long sn(int n, int a, int r)
{
int i, j;
long t1=0, t2;
for (i=0; i<n; i++)
{
t2=1;
for (j=0; j<i; j++) t2*=r;
t1+=a*t2;
}
return(t1);
}

void main()
{
int n, a, r, i;
long s=0;
printf("依次输入n, a, r:\n");
scanf("%d%d%d", &n, &a, &r);
for (i=0; i<n; i++) s+=sn(i+1, a, r);
printf("S=%ld\n", s);
}

设An=Sn,根据常识知等比数列,A1=a,公比q=r,An=a(1-r^n)/(1-r).
double S(int n)
{
if(n==1)return a;
else return S(n-1)*An;
}