如何在 Java 中除以 3 的大数而不取模 (%)?
How to divide a big number with 3 in Java without modulo (%)?
我需要 Java 中的一个程序来验证一个大数是否可以除以 3,而不使用模数 (%)
一个简单的方法是除以 3 得到一个整数。结果将被截断。您可以乘以 3 并与原来的比较:
int number = 10;
int result = number / 3;
if (result*3 == number) {
// can be divided
} else {
// cannot be divided
}
当数字的和能被3整除时,一个数就能被3整除。
例如。
11111111 不能被 3 整除(总和为 8)
111111111 可被 3 整除(总和为 9)
你可以重复从数字中减去 3,直到得到小于 4 的数字。如果最后的数字是 3,这意味着你的数字可以被 3 整除,否则不能。我假设你不能为此使用模或除法。
while (number >= 4) {
number -= 3;
}
if (number == 3) {
//original number is a multiple of 3
} else {
//original number is not a multiple of 3
}
while(number / 3 > 2)
{
number = number / 3;
}
if(number == 0)
{
return true
}
return false
我需要 Java 中的一个程序来验证一个大数是否可以除以 3,而不使用模数 (%)
一个简单的方法是除以 3 得到一个整数。结果将被截断。您可以乘以 3 并与原来的比较:
int number = 10;
int result = number / 3;
if (result*3 == number) {
// can be divided
} else {
// cannot be divided
}
当数字的和能被3整除时,一个数就能被3整除。
例如。
11111111 不能被 3 整除(总和为 8)
111111111 可被 3 整除(总和为 9)
你可以重复从数字中减去 3,直到得到小于 4 的数字。如果最后的数字是 3,这意味着你的数字可以被 3 整除,否则不能。我假设你不能为此使用模或除法。
while (number >= 4) {
number -= 3;
}
if (number == 3) {
//original number is a multiple of 3
} else {
//original number is not a multiple of 3
}
while(number / 3 > 2)
{
number = number / 3;
}
if(number == 0)
{
return true
}
return false