2007年5月5日 星期六

卡片問題

考慮以下四張卡片,每張卡片有八個數字

第一張:1 3 5 7 9 11 13 15
第二張:2 3 6 7 10 11 14 15
第三張:4 5 6 7 12 13 14 15
第四張:8 9 10 11 12 13 14 15

若問數字7存在那幾張卡片,則為第一、第二、第三張,就將第一、第二和第三張卡片的第一個數字加起來,即為數字7

若卡片為五張時,則卡片會有十六個數字
問隨意輸入n張卡片時,列出n張卡片的所有數字
(提示:此題目為二進位之應用)

困難度:**
時間複雜度:O(n^2)
程式語言:C++
預估時間:1 小時

解題原理:
1. 先取得使用者輸入的次數
2. 先考慮從1到n每個數字到n^2的布林OR的關係去瞭解2進位可能推導原理
3. 發現正確解為第一個數字要為2的次方,之後往後看不可以重覆,且只能取2^n/2個數
4. 完成


程式下載


原碼下載


參考來源:長榮大學2007校內程式設計競賽初賽 試題 一

沒有留言: