2018年第九屆藍橋杯省賽C++A組題目分析以及思路總結
第一題 分數
1/1 + 1/2 + 1/4 + 1/8 + 1/16 + ....每項是前一項的一半,如果一共有20項,
求這個和是多少,結果用分數表示出來。
類似:
3/2
當然,這只是加了前2項而已。分子分母要求互質。注意:
需要提交的是已經約分過的分數,中間任何位置不能含有空格。
請不要填寫任何多餘的文字或符號。基礎題,我的思路很簡單,分母都化成2的19次冪,通分,然後寫程式求出分子和分母,答案:1048575/524288
第二題 星期一
整個20世紀(1901年1月1日至2000年12月31日之間),一共有多少個星期一?(不要告訴我你不知道今天是星期幾)注意:需要提交的只是一個整數,不要填寫任何多餘的內容或說明文字。 這題在我看來應該是excel解決是最好的,剛拿到手也是用excel和計算器在搞,不過一上來可能比較慌,沒整出來,放到最後手算了下,思路是這樣的,首先程式跑出閏年來,閏年366天,平年365天,把這個世紀的都加一下,得出總天數,然後因為比賽電腦的日曆不允許翻看1990年以前的日曆,所以看了下2000年12月31日的時間,是週末,用剛才算出來的 天數/7,是總的星期數,天數%7看一下剩幾天沒算,倒推下有沒有額外的週一,因為2000年12月31日是週末,所以肯定沒有額外的啦,ok啦。
第三題 乘積尾零
如下的10行資料,每行有10個整數,請你求出它們的乘積的末尾有多少個零?
5650 4542 3554 473 946 4114 3871 9073 90 4329
2758 7949 6113 5659 5245 7432 3051 4434 6704 3594
9937 1173 6866 3397 4759 7557 3070 2287 1453 9899
1486 5722 3135 1170 4014 5510 5120 729 2880 9019
2049 698 4582 4346 4427 646 9742 7340 1230 7683
5693 7015 6887 7381 4172 4341 2909 2027 7355 5649
6701 6645 1671 5978 2704 9926 295 3125 3878 6785
2066 4247 4800 1578 6652 4616 1113 6205 3264 2915
3966 5291 2904 1285 2193 1428 2265 8730 9436 7074
689 5510 8243 6114 337 4096 8199 7313 3685 211
注意:需要提交的是一個整數,表示末尾零的個數。不要填寫任何多餘內容。
這個題也見過類似的,當時沒想到5和2的因子解法,然後我說一下我的思路,剛開始直接將一百個數相乘,當然這是不可以的,一定會越界,當然我也試過了,十個數下來就亂套了,然後我就想可不可以壓縮資料大小呢,我取出前面的乘積結果的後兩位與後一個數相乘,5650乘4542得25662300,將後面的零取出來計數後,再取23與後面的4542相乘,就這樣迴圈,最後答案出來31,考場上比較緊張,也不知道對不對,是否考慮的周全,就最後十分鐘一直在想這個題了,不過還好,結果對啦。答案:31第四題 第幾個幸運數
到x星球旅行的遊客都被髮給一個整數,作為遊客編號。
x星的國王有個怪癖,他只喜歡數字3,5和7。
國王規定,遊客的編號如果只含有因子:3,5,7,就可以獲得一份獎品。
我們來看前10個幸運數字是:
3 5 7 9 15 21 25 27 35 45
因而第11個幸運數字是:49
小明領到了一個幸運數字 59084709587505,他去領獎的時候,人家要求他準確地說出這是第幾個幸運數字,否則領不到獎品。
請你幫小明計算一下,59084709587505是第幾個幸運數字。
需要提交的是一個整數,請不要填寫任何多餘內容。
這個題考場上是沒做的,因為我題目沒怎麼看明白,然後看到要求的數字很大,一般的方法估計會進坑,所以就放過了,感興趣的同學可以考慮下動態規劃的思路解決,這裡推薦下《演算法競賽入門經典(第二版)》,其中的醜數例題類似。答案:1905第五題 列印圖形
這個題我就不放題目啦,說一下思路,因為是規律圖形題目,看一下出口處,是size==1,所以考慮size逐漸減小的情況,思路到這裡基本可以了,試一下size/4,size/2,size/3,ok,解決啦,到現在我都沒看這個漂亮的影象是怎麼得到的。答案:size/3 (這裡沒有分號)