一道投機取巧的演算法題

2021-09-29 15:49:44 字數 748 閱讀 1394

取巧一時爽,一直取巧一直爽~

給定乙個整數,寫乙個函式來判斷它是否是 3 的冪次方。

示例 1:

輸入: 27

輸出: true

示例 2:

輸入: 0

輸出: false

高階:你能不使用迴圈或者遞迴來完成本題嗎?

正常的思路是不停地去除以 3,看最後的迭代商是否為 1。這種思路的**使用到了迴圈,逼格不夠高。

這裡取巧的方法用到了數論的知識:3 的冪次的質因子只有 3

題目要求輸入的是 int 型別,正數範圍是 0 - 2^31,在此範圍中允許的最大的 3 的次方數為 3^19 = 1162261467 ,那麼只要看這個數能否被 n 整除即可。

class

solution

}

我的專欄:和程式設計師小吳一起學演算法

❤️ 看完三件事:

如果你覺得這篇內容對你挺有啟發,我想邀請你幫我三個忙:

點讚,讓更多的人也能看到這篇內容(收藏不點贊,都是耍流氓 -_-

關注我和專欄,讓我們成為長期關係

一道演算法題

兩個燒杯,乙個放糖乙個放鹽,用勺子舀一勺糖到鹽,攪拌均勻,然後舀一勺混合 物會放糖的燒杯,問你兩個燒杯哪個雜質多?一樣多吧 對的 為啥?是不是因為 糖和鹽本來就是均勻的 因為,就算不攪拌均,你放一勺過去,那邊放一勺不含雜質的過來,那麼都是一勺雜之 如果攪拌均勻的話也是一樣 小依 21 45 32 也...

一道演算法題

1.上午主要做了對翻譯任務的劃分,下午把 翻譯完畢。2.明天要講的演算法題 對乙個集合,求出其連續元素組成的子集中,和最大的子集 我對這道題的理解是 1 若集合中最小值大於0,意味著所有的都大於0,則最大的子集和,為所有值加起來 2 若集合中最大值小於0,意味著所有的都小於0,則最大的子集和,為集合...

一道演算法題

include using namespace std const int size 5 int max sub array const int a,int n,int m int max matrix const int a size int row,int col,int subsize int...