《算法竞赛入门经典》刘汝佳第一章习题解答
习题1-1 平均数(average)
输入3个整数,输出它们的平均值,保留3位小数。
习题1-2 温度(temperature)
输入华氏温度f,输出对应的摄氏温度c,保留3位小数。提示:c=5(f-32)/9。
习题1-3 连续和(sum)
输入正整数n,输出1+2+…+n的值。提示:目标是解决问题,而不是练习编程。
#include <stdlib.h>
#include <stdio.h>
int main()
{
int n, m;
scanf("%d", &n);
m = ((1 + n) * n) / 2;
printf("%d", m);
system("pause");
}
习题1-4 正弦和余弦(sin和cos)
输入正整数n(n<360),输出n度的正弦、余弦函数值。提示:使用数学函数。
习题1-5 打折 (discount)
一件衣服95元,若消费满300元,可打八五折。输入购买衣服件数,输出需要支付的金额(单位:元),保留两位小数。
习题1-6 三角形(triangle)
输入三角形3条边的长度值(均为正整数),判断是否能为直角三角形的3个边长。如果可以,则输出yes,如果不能,则输出no。如果根本无法构成三角形,则输出not a triangle。
习题1-7 年份(year)
输入年份,判断是否为闰年。如果是,则输出yes,否则输出no。提示:简单地判断除以4的余数是不够的。
思考题
问题1:int型整数的最小值和最大值是多少(需要精确值)?
最小值是 -2,147,483,648(-2^31);最大值是 2,147,483,647(2^31 - 1;
问题2:double型浮点数能精确到多少位小数?或者,这个问题本身值得商榷?
具体精度是人为规定的,但是最高到小数点后16位
问题3:double型浮点数最大正数值和最小正数值分别是多少(不必特别精确)?
问题4:逻辑运算符号“&&”、“||”和“!”(表示逻辑非)的相对优先级是怎样的?也就是说,a&&b||c应理解成(a&&b)||c还是a&&(b||c),或者随便怎么理解都可以?
相对优先级 || < && < !
问题5:if(a)if(b)x++;else y++的确切含义是什么?这个else应和哪个if配套?有没有办法明确表达出配套方法?
else就近原则

浙公网安备 33010602011771号