Day 3_3 补充

1.cin读入一行数据

char str[100];
cin.getline(str,100);

string str;
getline(cin,str);

2.cout控制double型数据精度

添加头文件 “iomanip”

double a = 3.1415926;
cout<<setiosflags(ios::fixed)<<setprecision(2)<<a<<endl;

3.浮点数的比较!!!

1.相等判断

浮点数在计算机中存储并不总是精确的,如3.14,在存储可能是3.1399999或3.14000001,但是 "=="是完全相等才会是true,于是引入一个极小量eps对误差进行修正

一个数a落在[b-eps.b+eps]范围内,就说a==b,一般eps取 10^(-8)比较合适

const double eps = 1e-8;
或者使用宏定义方式
#define Equ(a,b) ((fabs((a)-(b)))<(eps))

实例

#include<stdio.h>
#include<math.h>
const double eps = 1e-8;
#define Equ(a,b) ((fabs((a)-(b)))<(eps))
int main(){
	double db = 1.23;
	if(Equ(db,1.23)){	//在这里 db == 1.23 也是可以的
		printf("true");
	}else{
		printf("false");
	}
	return 0;
}

一般没有没经过容易损失精度的计算,直接判断都行,但是经过容易损失精度的计算,就不行了,比如下面这个

	double db1 = 4 * asin(sqrt(2.0) / 2);
	double db2 = 4 * asin(sqrt(3.0) / 2);
	if(db1 == db2){
		printf("true");
	}else{
		printf("false");
	}

显然这就是误差较大的运算,受到了误差的影响

2.大于
#define More(a,b)  (((a) - (b))>(eps))
3.小于
#define Less(a,b)  (((a) - (b))<(-eps))
4.大于等于
#define MoreEqu(a,b)  (((a) - (b))>(-eps))
5.小于等于
#define More(a,b)  (((a) - (b))<(eps))
6.圆周率π

cos(π) = -1

const double Pi = acos(-1.0);

4.时间复杂度 空间复杂度 编码复杂度

一般空间够用,考虑用空间换时间的策略编写代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值