分数求和,新手题!!一看就会,计算 1/1 - 1/2 + 1/3 - 1/4 + 1/5 - … + 1/99 - 1/100 的值。(两种方法)

目录

方法一(if语句判断法)

方法二(flag改号法)


题目:计算 1/1 - 1/2 + 1/3 - 1/4 + 1/5 - … + 1/99 - 1/100 的值,并打印出结果,(注:除法分为整数除法和
浮点数除法,要计算出⼩数,得采⽤浮点数除法,浮点数除法的操作数中⾄少要保证有⼀个浮点
数。)

先给代码,解析在下面奥!!!(有两种方法)

#include <stdio.h>
//方法1
int main()
{
 int i = 0;
 double sum = 0;
 //遍历1~100
 for (i = 1; i <= 100; i++)
 {
 //判断当前数是奇数或偶数
 if (i % 2 == 1)
 //i为奇数,将sum加上1/i的值
 sum += 1.0 / i;
 else
 //i为偶数,将sum减去1/i的值
 sum -= 1.0 / i;
 }
 printf("%lf\n", sum);
 return 0;
}
//方法二
int main()
{
	double sum = 0;
	int flag = 1;
	double i = 0;
	for ( i = 1; i <= 100; i++)
	{
		sum += (1 / i) * (flag);
		flag = -flag;
	}
	printf("%f ", sum);
	return 0;
}

方法一(if语句判断法)

这题很简单,首先你需要一个浮点型的变量来作为整体的和,因为分数的值就是浮点数。

然后利用for循环遍历(将1-100的数字一个个取出)。

如果 i % 2 == 1,就说明 i 时一个奇数,根据题目奇数项前面是正号,所以 sum加上 1.0/sum

如歌 i % 2 == 0,那就是个偶数,根据题目偶数前面是负号,所以sum减去 1.0/sum;

(当然如果没有负号,全是加的话,那就不需要判断一直加即可。)

#include <stdio.h>
int main()
{
 int i = 0;
 double sum = 0;
 //遍历1~100
 for (i = 1; i <= 100; i++)
 {
 //判断当前数是奇数或偶数
 if (i % 2 == 1)
 //i为奇数,将sum加上1/i的值
 sum += 1.0 / i;
 else
 //i为偶数,将sum减去1/i的值
 sum -= 1.0 / i;
 }
 printf("%lf\n", sum);
 return 0;
}

方法二(flag改号法)

方法二需要用到一个单独的变量flag来改变正负号。

和方法一,一样还是需要遍历1-100的数字。第一个数字是正号,所以直接乘上flag。

第二个数字是负号所以在第一次循环末尾,把flag = - flag。这样下一次的flag就是-1 。

int main()
{
	double sum = 0;
	int flag = 1;
	double i = 0;
	for ( i = 1; i <= 100; i++)
	{
		sum += (1 / i) * (flag);
		flag = -flag;
	}
	printf("%f ", sum);
	return 0;
}

总结:简单题,只要考虑好 正负号即可。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值