很久没有沉下心来看看算法了,3月1日要考PAT,今天开始好好精心看看书吧。没什么压力看看算法还是几多惬意的一件事儿。
14页有几个很有意思的问题:
1、如何用实验的方法确定int型整数的最大值和最小值?
思考一下。没想出来。谷歌之。
思路还是很清楚的。正常的int型表示范围:正数一定是 a < (a+1);负数一定是 a > (a-1)。但如果到了临界值,溢出的边缘,这两个正常的情况都被否定。
solution:
1 int i = 0; 2 while( i < (i + 1)){ 3 i++; 4 } 5 max = i; 6 7 int j = 0; 8 while( j > (j - 1)){ 9 j--; 10 } 11 min = j;
2、double型浮点数能够精确到多少位小数?
直接在printf("%lf")是6位。
设定小数位数后,printf("%.100lf",10.0 / 3.0);
15位,再来一发。
printf("%.100lf",100000.0 / 3.0);
10位了。再做了几次试验。
double型浮点数最多能够精确16位数,小数位数最多为15位,小数与整数部分此消彼长。