藍橋杯 第九屆 C題 乘積尾零

2021-09-13 03:57:03 字數 1295 閱讀 5932

如下的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

注意:需要提交的是乙個整數,表示末尾零的個數。不要填寫任何多餘內容。

我的答案:20 2019.3.21 14:24

我的思路就是典型的錯誤思想啊,真是醉了:就是統計現在有多少0,排除不能成為0的1,3,7,9,其餘的保留,並且拋開前兩位只看末兩位,結果20,自然是錯了

老老實實乙個個算,但是除1e10來保證不會越界

#include using namespace std;

const int a = ;

long long p = 1;

const long long mod = 1e10;

int res;

int main()

p%=mod;//模乙個1e10保證始終不會溢位

} cout << res;

return 0;

const保證這個常量絕對不變,可以增強**的健壯性

數現在有13個末尾0,剩下的數里,有14個5的倍數,其中,除了3125外,其他均只含乙個5因子(若含兩個及以上的5因子,必為25的倍數,最後兩位一定是25或75(50不考慮,因為在之前把所有末尾含0的數去掉了0保留剩下的,因此已經算了一遍,不需重複計算)),而3125除下來發現是5的5次方,含5個5因子。這麼一來,總共有13+5=18個5因子,而2因子(能讓5變成0)的數量要比18多,那就是18+13=31了

第九屆藍橋杯初賽C B組第三題 乘積尾零

注意 需要提交的是乙個整數,表示末尾零的個數。不要填寫任何多餘內容。答案 31 解題思路 有的同學讀完題就直接將所有數相乘,然後每乘乙個數就把後面0全部去掉記一下,不過中間即使long long也會爆,當然為了避免 咱們可以每次乘完只保留後4位非0數字,例如216037就只保留6037。不過這裡咱們...

第九屆藍橋杯5 7題

description 以下 可以從陣列a中找出第k小的元素。它使用了類似快速排序中的分治演算法,期望時間複雜度是o n 的。請仔細閱讀分析原始碼,填寫劃線部分缺失的內容。input 見上文描述。output 注意 只填寫劃線部分缺少的 不要抄寫已經存在的 或符號。注意 題目要求的是時間複雜度是要o...

第九屆藍橋杯C組 一二題

小明被不明勢力劫持。後被扔到x星站再無問津。小明得知每天都有飛船飛往地球,但需要108元的船票,而他卻身無分文。他決定在x星戰打工。好心的老闆答應包食宿,第1天給他1元錢。並且,以後的每一天都比前一天多2元錢,直到他有足夠的錢買票。請計算一下,小明在第幾天就能湊夠108元,返回地球。public c...