POJ3299

决定按照北大OJ的练习顺序进行学习算法,使用的编程语言为C++

由于以前只是粗略的看了一下c++的语法,并且对算法这部分一无所知,甚至于连数据结构都没有好好学习,所以一开始准备先行抄写别人的代码进行学习。所以文章的结构暂时定为先行粘贴处摘抄的来源,而后写问题总的问题解决方式方法感想,贴出代码,再解释其中自己理解的部分,而后是算法中运用到的函数,头文件等等知识点的解释部分。

本次学习代码来源https://blog.csdn.net/lyy289065406/article/details/6642582

本次编写的POJ3299是比较基础的一题,并没有什么可以说的技巧。

#include<iostream>
#include<math.h>
#include<iomanip>
using namespace std;

int main() {
	char alpha;
	double t, d, h;
	int i;
	for (;;) {
		t = d = h = 200;
		for (i = 0; i < 2; i++) {
			cin >> alpha;
			if (alpha == 'E')
				return 0;
			else if (alpha == 'T')
				cin >> t;
			else if (alpha == 'D')
				cin >> d;
			else if (alpha == 'H')
				cin >> h;
		}
		if(h==200)
			h = t + 0.5555*(6.11*exp(5417.7530*(1 / 273.16 - 1 / (d + 273.16))) - 10);
		else if (t == 200)
			t = h - 0.5555*(6.11*exp(5417.7530*(1 / 273.16 - 1 / (d + 273.16))) - 10);
		else if (d == 200)
			d = 1 / ((1 / 273.16) - ((log((((h - t) / 0.5555) + 10.0) / 6.11)) / 5417.7530)) - 273.16;
		cout << setprecision(1) << fixed << "T " << t << " D " << d << " H " << h << endl;

	}
	return 0;
}

 

  1. 由于需要精确到小数点后,故使用浮点类double,用float也可以,float7位有效数字,double是16位,注意有四舍五入
  2. 无限循环直到检测到某参数的输出后退出,这种基本框架
  1. #include<iomanip>设置格式结构,例如:setprecision(6)代表小数点前面和后面接起来的位数为6个有效数字     https://www.cnblogs.com/lsgxeva/p/7696410.htm                                             https://blog.csdn.net/u011321546/article/details/9293547
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值