作为一名刚接触cs专业的萌新小白,开始学习蕊蕊大佬推荐的《算法竞赛入门经典》一书,一边学习一遍记录一些自己觉得很有用的小知识,作为自己平凡之路的一部分,日常慢慢更。emmmm
1.定义π的新姿势:
const double pi=acos(-1.0)
2.判断一个数的平方根是否为整数:
int m=floor(sqrt(n)+0.5);
if(m*m==n) printf("%d\n",n);
由于误差的影响,整数1可能会变成0.9999999999,floor的结果可能会是0而不是1,为了减小误差的影响,一般改为四舍五入。
3.一般要求输出的行首行尾均无空格,相邻两个数据间用单个空格隔开:
例如总共要输出n个整数,但只有n-1个空格,所以只好分两条语句输出。如:
for(int i=n-1;i>=1;i--)
printf("%d",a[i]);
printf("%d\n",a[0]);
另一种方法是设置一个标志变量first,用来判断当前要输出的变量是否为第一个:
int first=0;
for(int i=1;i<=n;i++)
{
if(first) first=0;
else printf(" ");
printf("%d",i);
}
4.在当前流行的竞赛平台中,int都是32位整数,范围是-2147483648~2147483647.
5.如果想输出025这样的数:
printf("%03d",25);
6.输出转义字符:
printf("\\n");