/*考虑下面两个无限序列:
1.0 + 1.0/2.0 + 1.0/3.0 + 1.0/4.0 + ...
1.0 - 1.0/2.0 + 1.0/3.0 - 1.0/4.0 + ...
编写一个程序计算这两个无限序列的总和,直到到达某次数。提示:奇数个-1 相乘
得-1,偶数个-1相乘得1。让用户交互地输入指定的次数,当用户输入0或负值时结束输入。
查看运行100项、1000项、10000项后的总和,是否发现每个序列都收敛于某值?*/
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(void)
{
int xulie;
double sum = 0.0;
printf("输入序列项: ");
scanf("%d", &xulie);
while (xulie > 0)
{
{
sum = 0.0;
for (int i = 1; i <= xulie; i++)
sum = sum + 1.0 / i;//计算加号数列
}
printf("1.0+...+1.0/%d.0的和是%lf\n", xulie, sum);
sum = 0.0;
for (int i = 1; i <= xulie; i++)
{
if (i % 2 == 0)
sum = sum - 1.0 / i;
else sum = sum + 1.0 / i;//计算1-1/2+1/3-1/4+......
}
printf("1.0-...+1.0/%d.0的和是%lf\n", xulie, sum);
sum = 0.0;
for (int i = 1; i <= xulie; i++)
{
if (i % 2 != 0)
sum = sum + 2 * 1.0 / i;
/*两个数列的和只计算奇数项,偶数项抵消*/
}
printf("1.0+1.0+2.0/3.0+...+2.0/%d.0的和是%lf\n", xulie, sum);
printf("输入序列项: ");
scanf("%d", &xulie);
}
printf("\结束\n");
return 0;
}
计算两个无限序列相加直至某次数
最新推荐文章于 2024-10-03 19:13:18 发布