LeetCode 2520. Count the Digits That Divide a Number
Given an integernum, return the number of digits innumthat dividenum.
An integervaldivides nums ifnums % val == 0.
Example 1:
Input: num = 7
Output: 1
Explanation: 7 divides itself, hence the answer is 1.Example 2:
Input: num = 121
Output: 2
Explanation: 121 is divisible by 1, but not 2. Since 1 occurs twice as a digit, we return 2.Example 3:
Input: num = 1248
Output: 4
Explanation: 1248 is divisible by all of its digits, hence the answer is 4.Constraints:
1 <= num <= 10^9numdoes not contain0as one of its digits.
效能
- Time complexity:
O(n) - Space complexity:
O(n) - Runtime: 17 ms
- Memory: 26.6 MB
題解
Weekly Contest 326,Easy。
給一組數字,分解成一個一個數字,找出可以整除原本數字的數量。
var num = 12345;
// 數字: [1, 2, 3, 4, 5]
// 可以被整除: [O, X, O, X, O] => return 3最佳解
把原本的 int 變成可以跑 for 或 foreach 的物件,一個一個比對就行。
var count = 0;
var nums = num.ToString();
foreach (var n in nums)
{
var current = Convert.ToInt32(n.ToString());
if (current == 0)
{
// 除數不能是 0
continue;
}
if (num % current == 0)
{
count++;
}
}
return count;