1-1/2+1/3+1/4-1/5+1/6+1/7+1/8-1/9……1/n 用C语言写出代码
答案:3 悬赏:50 手机版
解决时间 2021-02-12 00:48
- 提问者网友:战魂
- 2021-02-11 17:33
1-1/2+1/3+1/4-1/5+1/6+1/7+1/8-1/9……1/n 用C语言写出代码
最佳答案
- 五星知识达人网友:慢性怪人
- 2021-02-11 18:44
找出加减号的规律即可追问~~这个知道 想知道怎么用循环结构表示~追答OK,只要你找到了规律那就容易了, 先把他们全部看做加法运算,带减号的就相当于乘以-1, 假如规律是第1.3.5.7.....个数前面是减号,只需要给他们乘以-1即可追问不是的 是2 5 9 依次加2加3加4......我用C语言写不出来追答比如for(int i=0;i { if(i%2!=0)
{
i=i*(-1);
}
sum+=i;
}追问恩纳 这道题呢追答OK,明白你可以发现他们之间的差值是2.3.4.5.....利用这个就可以方便的找到哪一项应该乘以-1.追问可是 我觉得我用for while 我写不出来 老师也说不会 就不用想了追答可以写出来,你要相信自己,我给你提示,也就是你现在的任务只要确保第2.3.5.9....项可以乘以-1即可追问…~~我都不信了 因为我都想两天了 C语言都开始学数组了~~追答额,好吧,这样吧,你先学习新知识,这个先不要想了,有时间了你再问我我给你再提示,这个还是你自己动手写出来比较好
{
i=i*(-1);
}
sum+=i;
}追问恩纳 这道题呢追答OK,明白你可以发现他们之间的差值是2.3.4.5.....利用这个就可以方便的找到哪一项应该乘以-1.追问可是 我觉得我用for while 我写不出来 老师也说不会 就不用想了追答可以写出来,你要相信自己,我给你提示,也就是你现在的任务只要确保第2.3.5.9....项可以乘以-1即可追问…~~我都不信了 因为我都想两天了 C语言都开始学数组了~~追答额,好吧,这样吧,你先学习新知识,这个先不要想了,有时间了你再问我我给你再提示,这个还是你自己动手写出来比较好
全部回答
- 1楼网友:孤老序
- 2021-02-11 21:06
相邻减号间距递增,速度为1追问~~这个知道 想知道怎么用循环结构表示~
- 2楼网友:时间的尘埃
- 2021-02-11 19:35
#include
int main()
{
int n;
int x = 1;
double i;
double sum = 0.0;
printf("请输入 n: ");
scanf("%d", &n); //输入n
for(i = 1; i <= n; i++)
{
sum = sum + (x)*1/i;
x = x*(-1); //用来控制表达式的正负
}
printf("%f\n", sum);
return 0;
}追问这个不是吧 这个不是1-1/2+1/3—1/4……
这是书上的答案 我觉得不对追答sorry 我看错了。你书上的确实不对。我改了下。
#include
int main()
{
int n;
int step = 2;
int develop = 3;
double i;
double sum = 0.0;
printf("请输入 n: ");
scanf("%d", &n); //输入n
for(i = 1; i <= n; i++)
{
if((int)i%step == 0) //能被step整除时第i项就为负数
{
sum = sum + (-(1/i));
step = step + develop;
develop++;
continue;
}
sum = sum + 1/i;
}
printf("%f\n", sum);
return 0;
}追问不好意思哈 太感谢你了~~~可是已经采纳了 只能感谢了
int main()
{
int n;
int x = 1;
double i;
double sum = 0.0;
printf("请输入 n: ");
scanf("%d", &n); //输入n
for(i = 1; i <= n; i++)
{
sum = sum + (x)*1/i;
x = x*(-1); //用来控制表达式的正负
}
printf("%f\n", sum);
return 0;
}追问这个不是吧 这个不是1-1/2+1/3—1/4……
这是书上的答案 我觉得不对追答sorry 我看错了。你书上的确实不对。我改了下。
#include
int main()
{
int n;
int step = 2;
int develop = 3;
double i;
double sum = 0.0;
printf("请输入 n: ");
scanf("%d", &n); //输入n
for(i = 1; i <= n; i++)
{
if((int)i%step == 0) //能被step整除时第i项就为负数
{
sum = sum + (-(1/i));
step = step + develop;
develop++;
continue;
}
sum = sum + 1/i;
}
printf("%f\n", sum);
return 0;
}追问不好意思哈 太感谢你了~~~可是已经采纳了 只能感谢了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯