求他的前n项和
#include <stdio.h>
int main()
{
int n;
int i;
double sum=0.0;
scanf("%d", &n);
for(i=1; i<=n; i++){
sum+=1.0/i;
}
printf("%f", sum);
return 0;
}
一个变量是输入的变量 一个变量要表达递增的 另外一个变量把他们加起来表示总和
但这里1/i会是小数 所以要用浮点数 double变量可以用来表示浮点数
下面那个sum的和也要用浮点数 要把1改为1.0,这样就是浮点数的计算 如果不改的话就会这样
不改成浮点数 他就是个整数运算,他不管你后面有没有小数点 改成浮点数就行了
用了浮点数之后,输出时一定得用%f 不能继续用%d了
浮点数有点烦人。
求它怎木求,
可以加个变量,让他为-1在循环里面 再乘于那个1.0/i就行了
#include <stdio.h>
int main()
{
int n;
int i;
double sum=0.0;
int sign=1;
scanf("%d", &n);
for(i=1; i<=n; i++){
sum+=sign*1.0/i;
sign=-sign;
}
printf("%f", sum);
return 0;
}
另外一种方法就是改变他的分子,让分子1一直改变为正负1 当然这个分子需要为浮点数
#include <stdio.h>
int main()
{
int n;
int i;
double sum=0.0;
double sign=1.0;
scanf("%d", &n);
for(i=1; i<=n; i++){
sum+=sign/i;
sign=-sign;
}
printf("%f", sum);
return 0;
}