算法笔记
一,输入:
除了%c外,scanf对其他个师傅(%d)的输入是以空白符(即空格,换行)为结束标志的
scanf的格式是可以读入空格和字符的
getchar():输入单个字符,常用于将输入中每行末尾的换行符吸收掉
gets() :输入一行字符串
char str[100];
cin.getline(str,100);
string str;
getline(cin,str);
二,数学函数
#include<math.h>
typedef long long LL;//给log long 起个别名LL
fbs(doublex) //绝对值
floor(double x) //向下取整
ceil(double x) //向上取整
pow(double r,double p) //r的p次方
sqrt(double x) //x的算数平方根
log(double x) //x以自然对数e为底的对数
sin(double x), cos(double x), tan(double x)
const double pi = acos(-1.0) ;//定义常量pai圆周率
asin(double x),acos(double x),atan(double x) //反三角函数
round(double x) //四舍五入,返回double
数组赋值
#include<string.h>
memset(a,0,sizeof(a));
memset(a,-1,sizeof(a));
//memset按字节赋值,int占四个字节,建议仅赋值0或-1,
//若需赋值其他值,使用fill函数
string.h头文件
strlen(str) //字符数组str中第一个\0前的字符的个数
strcmp(str1,str2) //str1<str2 返回负数,== 返回0 > 返回正数
strcpy(str1,str2) //将str2赋值给str1
strcat(str1,str2) //将str2接到str1后面
sscanf与sprintf
sscanf(str,"Formater",&var1,&var2...) //将str中的内容按照格式控制字符串Formater写到变量var中
sprintf(str,"Formator",var1,var2...) //将变量var按格式控制字符串写到str中
浮点运算
const double eps = 1e-8;
#define Equ(a,b) ((fabs((a)-(b)))<(eps)
OJ时间限制和空间限制
对一般OJ系统来说,一秒能承受的运算次数大概是107~8
只要不开好几个107以上的数组,一般空间都是够用的
文件末尾
在黑框手动输入时,系统并不知道什么时候达到了所谓的“文件末尾”,因此需要用<Ctrl+Z>组合键然后按Enter键的方式来告诉系统已经达到了EOF