Leetcode之PHP版題目解析(172. Factorial Trailing Zeroes)
2 0 1 9 - 3 - 2 6 星 期 二 開 始 吧
今 天 搭 了 一 天 的 o f f i c e w e b a p p s , 搭 了 一 半 ( 實 在 是 麻 煩 ) , 之 前 用 的 是 o f f i c e 那 幾 個 第 三 方 包 來 操 作 e x e c l , w o r d , p p t 那 些 , 最 終 還 是 搭 一 個 服 務 吧 , 畢 竟 客 戶 是 上 帝 . ( 打 算 這 個 搭 完 實 現 在 線 編 輯 修 改 微 軟 服 務 寫 一 篇 b l o g 好 好 記 錄 一 下 )
上 一 題 鏈 接 Leetcode之PHP版題目解析(169. Majority Element)
題 目 描 述
給 定 一 個 整 數 n , 返 回 n ! 中 的 尾 隨 零 的 數 量 。
題 目 分 析
求 一 個 數 階 乘 末 尾 0 的 個 數 , 尾 數 要 是 等 於 0 的 話 , 那 麼 必 定 是 可 以 被 5 整 除 的 數 , 如 果 當 前 是 ! 5 , 就 有 1 個 被 5 整 數 的 數 , ! 1 0 就 有 兩 個 , 依 次 類 推 . 所 以 這 道 題 也 就 是 在 求 一 個 階 乘 數 裡 面 有 多 少 個 因 式 分 子 5 .
具 體 實 現
/** * @param Integer $n * @return Integer */ function trailingZeroes($n) { $res=0; while($n){ $res +=intval($n/5); $n /=5;//分解因式分子後5的個數 } return $res; }
解 法 二
這 道 題 稍 微 改 進 一 下 , 用 遞 歸 實 現 可 以 喪 心 病 狂 的 把 代 碼 壓 縮 到 一 行 .
/** * @param Integer $n * @return Integer */ function trailingZeroes($n) { return$n==0?0:intval($n/5)+$this->trailingZeroes($n/5); }
運 行