程式設計師的演算法趣題Q01 回文十進位制數

2021-09-30 01:08:31 字數 825 閱讀 8618

q01——回文十進位制數

問題:求用十進位制、二進位制、八進位制表示都是回文數的所有數字中,大於十進位制數的10的最小值。

思路:因為是二進位制的回文數,所以如果最低位是0,那麼相應地最高位也是0。但是,以0開頭肯定是不恰當的,由此可知最低位為1。如果用二進位制表示時最低位為1,那這個數一定是奇數,因此只考慮奇數的情況就可以,接下來就可以簡單地編寫程式,從10的下乙個數字11開始,按順序搜尋。

**如下:

ruby版本

# 從11開始檢索

num =

11while

true

if num.to_s == num.to_s.reverse &&

num.

to_s(8

)== num.

to_s(8

).reverse &&

num.

to_s(2

)== num.

to_s(2

).reverse

puts num

break

end# 只檢索奇數,每次加2

num +=2

end

js版本

/* 為字串型別新增返回逆序字串的方法 */

string.prototype.

reverse

=function()

/* 從11開始檢索 */

var num =11;

while

(true

)/* 只檢索奇數,每次加2 */

num +=2;

}

程式設計師的演算法趣題 Q3翻牌

這裡有 100 張寫著數字 1 100 的牌,並按順序排列著。最開始所有牌都是背面朝上放置。某人從第 2 張牌開始,隔 1 張牌翻牌。然後第 2,4,6,100 張牌就會變成正面朝上。接下來,另乙個人從第 3 張牌開始,隔 2 張牌翻牌 原本背面朝上的,翻轉成正面朝上 原本正面朝上的,翻轉成背面上 ...

程式設計師的演算法趣題Perl版 (二)

竟然一月一更。第四題 假設一根木棒n厘公尺,需要切分為一厘公尺長的木棒,每根木棒只可以乙個人切,木棒切成兩根可以兩個人切 求 n厘公尺長木棒,m個人最少要切幾次,比如n 8,m 3,則需要切4次。perl 20170930 use strict sub cut elsif currentparts ...

100 的程式設計師都想挑戰的演算法趣題!

計算機的世界每天都在發生著深刻的變化。新作業系統的發布 cpu效能的提公升 智慧型手機和平板電腦的流行 儲存介質的變化 雲的普及 這樣的變化數不勝數。在這樣日新月異的時代中,演算法 是不變的重要基石。要編寫高效率的程式,就需要優化演算法。無論開發工具如何進化,熟識並能靈活運用演算法仍然是對程式設計師...