如何在 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