第九届蓝桥杯省赛c/c++ A 组题解(部分)

1 分数

标题:分数

1/1 + 1/2 + 1/4 + 1/8 + 1/16 + ….
每项是前一项的一半,如果一共有20项,
求这个和是多少,结果用分数表示出来。
类似:
3/2
当然,这只是加了前2项而已。分子分母要求互质。

注意:
需要提交的是已经约分过的分数,中间任何位置不能含有空格。
请不要填写任何多余的文字或符号。

等比数列求前n项和


所以 a n s = 1 1 / 2 20 1 1 / 2 = 2 1 1 / 1 048 576 ) = 1048575 / 524288

2 星期一

标题:星期一

整个20世纪(1901年1月1日至2000年12月31日之间),一共有多少个星期一?
(不要告诉我你不知道今天是星期几)

解题思路:

从1901/1/1 到2000/12/31 共有 s u m = 365 100 + 100 / 4 = 36525 天(因为有闰年),而由电脑上的日历可知1901/1/1为星期二,每七天有一个星期一,所以共有 36525/7 = 5217 个星期一,而 36525 mod 7 = 6 多出来这6天,分别是从2,3,4,5,6,7,经过查询2000/12/31 正好是周日,于是答案就是 5217

3 乘积尾零
4 第几个幸运数
5 打印图形

这一题贼有意思,我在比赛前打ACM高校联盟也碰到过这种题,当时不会做也没看题解,考试的时候全靠蒙,反正随便填一运行就出结果了
不过我感觉非常有必要把这个递归问题学一下.