首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >多项式求和 HDU - 2011

多项式求和 HDU - 2011

作者头像
种花家的奋斗兔
发布2020-11-12 18:51:20
发布2020-11-12 18:51:20
47300
举报
运行总次数:0

多项式求和

HDU - 2011

多项式的描述如下: 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ... 现在请你求出该多项式的前n项的和。

Input

输入数据由2行组成,首先是一个正整数m(m<100),表示测试实例的个数,第二行包含m个正整数,对于每一个整数(不妨设为n,n<1000),求该多项式的前n项的和。

Output

对于每个测试实例n,要求输出多项式前n项的和。每个测试实例的输出占一行,结果保留2位小数。

Sample Input

代码语言:javascript
代码运行次数:0
运行
复制
2
1 2

Sample Output

代码语言:javascript
代码运行次数:0
运行
复制
1.00
0.50

真无语,一个题写了半天,又入坑了。

本来想用一个for循环解决,后来感觉太麻烦了,然后改成了两个for循环,一次增加2;然后,double型数据又出问题了,一直都是零,ans一直都是1。最后还是在前面加了一个(double)强制转换。

代码语言:javascript
代码运行次数:0
运行
复制
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstdio>
using namespace std;

int main()
{
	int m = 0;
	cin >> m;
	double ans = 0;
	int a;
	while (m--)
	{
		cin >> a;
		double temp=0.00;
		for (int i = 1; i <= a; i += 2)
		{
			//temp = 1 / i;这样得到的结果是0!!!!!ans永远是1.00
			temp = (double)1 / i;
			ans += temp;
			//cout << ans << "   " << i << endl;
		}
		for (int i = 2; i <= a; i += 2)
		{
			temp = (double)1 / i;
			ans -= temp;
		}

		printf("%.2lf\n", ans);
		ans = 0;
	}
	return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/03/23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 多项式求和
  • HDU - 2011
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档