c语言题目 求1-1/2+1/4-1/8+1/16 …..+(-1/2)n值,直到最后元素的小于10-4 5
4个回答
展开全部
#include<stdio.h>
#include<math.h>
main()
{
int n=0;
double sum=1,k=-0.5,t=1,m;
while(fabs(t)>0.0001)
{
t=t*k;
m=t;
sum=sum+m;
n++;
}
printf("n=%d ,sum=%lf\n",n,sum);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以化简成
1/2+1/8+1/32+...+1/(2*(4--(n-1)次方))
int main(void)
{
int n = 0;
double s = 0.0,a;
for(a = 1/2;a < 0.00001;a /= 4.0)
{
s += a;
}
////应为上面没一项是原式中的两项相加的结果且这两项分别为2a , -a,所以如果2a也满足要求,就不要最后一项-1了
if((2*a)<0.00001)
s += a;
printf("s = %lf\n",s);
return 0;
}
1/2+1/8+1/32+...+1/(2*(4--(n-1)次方))
int main(void)
{
int n = 0;
double s = 0.0,a;
for(a = 1/2;a < 0.00001;a /= 4.0)
{
s += a;
}
////应为上面没一项是原式中的两项相加的结果且这两项分别为2a , -a,所以如果2a也满足要求,就不要最后一项-1了
if((2*a)<0.00001)
s += a;
printf("s = %lf\n",s);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询