#include <stdio.h>
#include <stdlib.h>
#define add 5
int main(void)
{
long n = 0, i = 0, ii = 1;
double sum = 0.0;
long double a = 1.0, b = 2.0;
long double *p_ab = NULL;
long double *p_Temp = NULL;
p_ab = calloc(add,sizeof(long double));
if (!p_ab)
{
return 1;
}
printf("你要计算前几项和:");
scanf_s(" %ld", &n, sizeof(n));
for (i = 0; i < n; ++i)
{
if (i >= add)
{
ii++;
p_Temp = realloc(p_ab, ii*add*sizeof(long double));
if (!p_ab)
{
free(p_ab);
p_ab = NULL;
return 1;
}
p_ab = p_Temp;
}
if (i == 0)
{
sum += b / a;
p_ab[i] = a + b;
}
else if (i == 1)
{
sum += p_ab[i - 1] / b;
p_ab[i] = p_ab[i - 1] + b;
}
else
{
sum += p_ab[i - 1] / p_ab[i - 2];
p_ab[i] = p_ab[i - 1] + p_ab[i - 2];
}
}
printf("%lf\n",sum);
free(p_ab);
p_ab = NULL;
system("pause");
return 0;
}
计算2/1,3/2,5/3,8/5,13/8,21/13……前n项的和(仅用于讨论)
最新推荐文章于 2024-05-01 10:06:14 发布