多米诺骨牌 - 每天一道算法题 - SegmentFault



多米诺骨牌 - 每天一道算法题 - SegmentFault

100张多米诺骨牌整齐地排成一列,按顺序编号为1、2、3、4……99、100。第一次拿走所有的奇数位置上的骨牌,第二次再从剩余的骨牌中拿走所有奇数位置上的骨牌,依次类推,请问最后剩下的一张骨牌的编号是多少()

A.48
B.50
C.52
D.64

正确答案:D.

答对了吗?答对了吗?答对了吗?

来一波解析给大家吧:

第一次拿走多米诺骨牌我们剩下:2,4,6,8,10...均为2的倍数。

第二次拿走多米诺骨牌我们剩下4,8,12,16....均为4的倍数。

第三次拿走多米诺骨牌我们剩下,8,16,24...均为8的倍数。

那么聪明的我们发现了规律:每次剩下的都是2的n次方的倍数。2的n次方小于100的最大值是什么?

2的6次方,也就是64,所以选择答案D。

换种直观的方法:
我们不考虑什么剩下的数究竟是多少,我们只知道剩下的数是偶数,而且个数我们是清楚的,所以就有:

第一次后剩下50个偶数
将它们除以2得到1~50的一列
第二次后剩下25个偶数 2 4 6...50
将他们除以2得到1~25的一列
第三次后剩下12个偶数 2 4 5...24
将他们除以2得到1~12的一列
同理,第四次除后到6 第五次除后到3 第六次除后剩下最后一张1
所以,它的编号是1×2^6=64


Read full article from 多米诺骨牌 - 每天一道算法题 - SegmentFault


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts