分数求和:计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值

问题描述:

计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值

问题分析:

        经过观察,我们发现分数的分子一直为1,而分母是在1~100之间逐渐增大的,所以如果是简单的把这些数都加起来,我们直接for循环就行,但是现在还要考虑负号的存在,还有就是由于计算的结果是分数,所以我们不能再将结果写成int型了,而是要采用float型。

问题解决:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 1;
float num = 0.0;
int i = 1;
for (a = 1; a <= 100; a++)
        {
               num += 1.0 / a * i;   //要计算总和就要用到+=,同时a每次循环就+1
                i = -i;                       //由于+和-是交替出现的,所以我们想到了可以在每次循环结束时改变分子的符号,这样就相当于改变了分数的正负,而负负得正又可以保证正数变为负数之后又能在下一次循环时变成正数
        }
printf("和为:%lf", num);
return 0;
}

~over~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值