【题目名称】
分数求和
【题目内容】
计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果
第一种:运用两个for循环 ,整体思路为:1/1+1/3+1/5+.....+1/99 和1/2+1/4+1/6+...+1/100 ,,两者再做减法
#include<stdio.h>
int main()
{
int i ,j ;
double sum1,sum2,sum; //由于涉及到分数,所以用小数进行定义
for(i=1;i<=100;i+=2) // 注意这边不是i++,应该为i+=2,因为相邻两项之 间的差为2
{
sum1=sum1+(1.0/i); //这里如果为1的话,1/i==0
}
printf("%lf\n",sum1); //注意这边不是%d
for(j=2;j<=100;j+=2) //第一个是2
{
sum2=sum2+(1.0/j);
}
printf("%lf\n",sum2);
sum=sum1+sum2;
printf("%lf\n",sum);
return 0;
}
第二种:
#include<stdio.h>
int main()
{
int i ;
double sum;
int flag=1;
for(i=1;i<=100;i++)
{
sum+=flag*(1.0/i); //或者写为sum=sum+flag*(1.0/i)也可以
flag=-flag; //第一次得到sum=1.0;之后flag变为-1,i以2进入,此 时sum=1/2 ........
}
printf("%lf\n",sum);
return 0;
}