算法竞赛入门经典(第二版)_1_1_算术表达式
学习笔记,外加浅薄想法
A.算术表达式
1.整数值用%d输出,实数用%f输出。其中还可以修改输出格式,例:%.1f%就是保留一位小数。
2.整数/整数=整数,浮点数/浮点数=浮点数。整数-浮点数=浮点数,这里整数先“变”成浮点数,然后浮点数-浮点数=浮点数。
B.变量及其输入
1.这里面get到一个输入π值的方法:
const double pi = acos(-1);//反余弦函数,头文件为<amath>或<math.h>,声明为常数,所求的pi精度较高。
即-1的反余弦函数值就是π,我想知道它的一个精度,然后输出尝试发现最长是小数点后16位。
2.算法竞赛应当只做三件事:读入数据,计算结果,打印输出。
C.顺序 结构程序设计
1.三位数反转_1
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
printf("%d%d%d\n",n%10,n/10%10,n/100);
return 0;
}
作者的思维特别地严谨,还考虑到了输出025的特殊情况,那么怎么解决?
三位数反转_2
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
m = (n%10)*100 + (n/10%10)*10 + (n/100);
printf("%03d",m);
return 0;
}
%03d 有点新奇,于是我百度了一下,扩充了一下这方面的知识(引用自百度):
%3d--可以指定宽度,不足的左边补空格
%-3d--左对齐
%03d---一种左边补0 的等宽格式,比如数字12,%03d出来就是: 012
C.分支结构程序设计
1.C语言中的逻辑运算符都是短路运算符。一旦能够确定整个表达式的值,就不再运算。
2.算法竞赛的目标是编程对任意输入均得到正确的结果,而不仅是样例数据。
D.总练习题
1.闰年:闰年的2月有29天,平年的2月只有28天
2.闰年能被4整除,若是整百年(世纪年),还需要加一个条件---能被400整除