無盡演算法之 自除數

2021-10-01 23:19:01 字數 755 閱讀 1822

自除數

是指可以被它包含的每一位數除盡的數。

例如,128 是乙個自除數,因為 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。

還有,自除數不允許包含 0 。

給定上邊界和下邊界數字,輸出乙個列表,列表的元素是邊界(含邊界)內所有的自除數。

示例 1:

輸入:上邊界left = 1, 下邊界right = 22

輸出: [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22]

注意:每個輸入引數的邊界滿足 1 <= left <= right <= 10000。

題解:對於給定範圍內的每個數,我們將直接判斷該數是否為自除數。

根據定義,我們先判斷數字是否非零,若數字非零再判斷是否能夠被該數除盡。

例如,對於 128,我們要判斷 d != 0 && 128 % d == 0,且 d = 1, 2, 8。

解決這個問題的乙個簡單方法是將數字轉換成乙個字元陣列,然後在檢查 n%d==0 時轉換回整數執行模運算。

我們還可以不斷地把數字除以 10,取整數的最後乙個數字。在**中為注釋的部分。

class

solution

}return result;

}public

boolean

isselfdiv

(int num)

}return

true;}

}

無盡演算法之 Nim 遊戲

你和你的朋友,兩個人一起玩 nim 遊戲 桌子上有一堆石頭,每次你們輪流拿掉 1 3 塊石頭。拿掉最後一塊石頭的人就是獲勝者。你作為先手。你們是聰明人,每一步都是最優解。編寫乙個函式,來判斷你是否可以在給定石頭數量的情況下贏得遊戲。示例 輸入 4 輸出 false 解釋 如果堆中有 4 塊石頭,那麼...

無盡演算法之 翻轉遊戲

你和朋友玩乙個叫做 翻轉遊戲 的遊戲,遊戲規則 給定乙個只有 和 的字串。你和朋友輪流將 連續 的兩個 反轉成 當一方無法進行有效的翻轉時便意味著遊戲結束,則另一方獲勝。請你寫出乙個函式,來計算出每個有效操作後,字串所有的可能狀態。示例 輸入 s 輸出 注意 如果不存在可能的有效操作,請返回乙個空列...

728 自除數 簡單

題目 於力扣 leetcode 目錄728.自除數 說明 遍歷 left 到 right 元素,對每個數值元素進行判斷若遍歷元素在 1,9 區間內,加入結果集,一位數必定是自除數對其他的元素,進行迴圈取個位數的操作,判斷個位數上的元素是否不為 0 且能夠被當前遍歷元素整除 public static...