📅  最后修改于: 2023-12-03 15:10:53.663000             🧑  作者: Mango
在编程中,我们经常需要判断一个数字除以其每个数字后的余数是否为0,以此来判断该数字是否符合一定条件,比如是否为素数等等。下面将为大家介绍几种检查数字的所有数字是否将其除的方法:
这是最基本的方法,通过循环遍历数字的所有数字并判断其是否能够将该数字整除。
# Python 示例代码
def is_divisible_by_all_digits(number):
for digit in str(number):
if int(digit) == 0 or number % int(digit) != 0:
return False
return True
// Java 示例代码
public static boolean isDivisibleByAllDigits(int number) {
String digits = String.valueOf(number);
for (int i = 0; i < digits.length(); i++) {
int digit = Integer.parseInt(digits.charAt(i) + "");
if (digit == 0 || number % digit != 0) {
return false;
}
}
return true;
}
递归也是一种常用的方法,能够简化代码实现,并且在一些特定情况下可以提高效率。
# Python 示例代码
def is_divisible_by_all_digits_recursive(number, digits):
if digits == "":
return True
digit = int(digits[0])
if digit == 0 or number % digit != 0:
return False
return is_divisible_by_all_digits_recursive(number, digits[1:])
// Java 示例代码
public static boolean isDivisibleByAllDigitsRecursive(int number, String digits) {
if (digits.equals("")) {
return true;
}
int digit = Integer.parseInt(digits.charAt(0) + "");
if (digit == 0 || number % digit != 0) {
return false;
}
return isDivisibleByAllDigitsRecursive(number, digits.substring(1));
}
对于 Python,我们还可以使用 lambda 表达式来简化代码实现。
# Python 示例代码
def is_divisible_by_all_digits_lambda(number):
return all(map(lambda x: int(x) != 0 and number % int(x) == 0, str(number)))
如果你在 Python 中足够熟悉正则表达式,也可以使用正则表达式来实现该功能。
# Python 示例代码
import re
def is_divisible_by_all_digits_regex(number):
return not bool(re.search('[^1-9]|0|(?<!^)(?<=0)\d+|(?<=\d)0', str(number)))
以上就是几种检查数字的所有数字是否将其除的方法,你可以选择合适的方法来实现你的需求。