第1个回答 2018-09-05
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
double i;
double times;
double sum1,sum2;
printf("指定的次数:");
scanf("%lf",×);
sum1=0;
sum2=0;
while (times>0)
{
for (i=1.0;i<=times;i++)
{
sum1=sum1+1.0/i ;
sum2=sum2+pow(-1.0,i+1.0)*1.0/i;
}
printf("sum1=%lf\n",sum1);
printf("sum2=%lf",sum2);
scanf("%lf",×);
sum1=0;
sum2=0;
}
printf("Done\n");
return 0;
}
这里的sum1可以不看,是1+1/2+1/3+...+1/n的。
sum2则是题主的1-1/2+1/3...+1/n
第2个回答 2015-04-24
可以看成两个序列,正数和负数的。手动算下两个累加和公式相减。。把m替换为变量,代表你的输入值
追问可以给出具体代码吗?
第3个回答 2015-04-24
#include <stdio.h>
int main()
{
int i, m;
float s;
printf("Enter m: ");
scanf("%d", &m);
if (m <= 1) {
printf("m 必须大于1\n");
return 0;
}
s = 1.0;
for (i = 2; i <= m; i++) {
if (i & 1) // i 是奇数
s += 1.0 / (float)i;
else
s -= 1.0 / (float)i;
}
printf("s=%f\n", s);
return 0;
}
第4个回答 2019-08-04
因为我们老师经常说,这个是无限小数,所以就等于1你们说对吗1+1/2+1/3+1/4+1/5, 到1/50是不是等于1