// 求數列的前n項之和,數列初始元素為1/2
//下一元素的分子是上一元素的分母
//下一元素的分母是上一元素的分子分母絕對值之和
//偶數項為負,奇數項為正
double sum(unsigned int n)
{
int i = 0;
double sum = 0;
double numerator, denominator, tmp;
numerator = 1.0; //分子
denominator = 2.0; //分母
if (n <= 0)
return 0;
sum = 0.5; // 1/2 數列中第一個元素,分子為1, 分母為2
for (i = 1; i < n; ++i)
if (i % 2 == 0)
sum += denominator / (denominator + numerator);
}
else
sum -= denominator / (denominator + numerator);
// 計算數列中下個元素的分子分母,下一個元素的分子是上一個元素的分母
// 下一個元素的分母,是上一個元素的分子分母絕對值之和
tmp = denominator;
denominator += numerator;
numerator = tmp;
return sum;
// 求數列的前n項之和,數列初始元素為1/2
//下一元素的分子是上一元素的分母
//下一元素的分母是上一元素的分子分母絕對值之和
//偶數項為負,奇數項為正
double sum(unsigned int n)
{
int i = 0;
double sum = 0;
double numerator, denominator, tmp;
numerator = 1.0; //分子
denominator = 2.0; //分母
if (n <= 0)
return 0;
sum = 0.5; // 1/2 數列中第一個元素,分子為1, 分母為2
for (i = 1; i < n; ++i)
{
if (i % 2 == 0)
{
sum += denominator / (denominator + numerator);
}
else
{
sum -= denominator / (denominator + numerator);
}
// 計算數列中下個元素的分子分母,下一個元素的分子是上一個元素的分母
// 下一個元素的分母,是上一個元素的分子分母絕對值之和
tmp = denominator;
denominator += numerator;
numerator = tmp;
}
return sum;
}