考虑这两个数列
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+........................
编写一个程序,来计算这两个数列不断变化的总和,直到到达次数。让用户交互地次数。看看在20次、100次、500次之后的值。是否每个序列看上去要收敛于某个值?提示:奇数个-1相乘的值为-1,偶数个-1相乘的值为1.
#include<stdio.h>
void main()
{
double i,sum1=0,sum2=0;
int flag,count;
printf("请输入次数\n");
while(scanf("%d",&count)==1)
{
for(i=1.0;i<=count;i++)
sum1+=1.0/i;
for(i=1.0,flag=1;i<=count;i++,flag*=-1)
sum2+=flag*1.0/i;
printf("1.0+1.0/2.0+1.0/3.0+1.0/4.0+....=%lf\n",sum1);
printf("1.0-1.0/2.0+1.0/3.0-1.0/4.0+....=%lf\n",sum2);
sum1=0;
sum2=0;
printf("请输入次数,输入q退出\n");
}
}
这个程序主要注意一个地方就是解决第二个数列的负数问题,所以程序中用到了,flag*=-1来控制负号的位置