劃分如何檢查是否我的整數可以通過3如下劃分:如何檢查是否一個整數可以通過3
for(int i=0; i<24; i++){
//here, how to check if "i" can be divided by 3 completely(e.g. 3, 6, 15)?
}
劃分如何檢查是否我的整數可以通過3如下劃分:如何檢查是否一個整數可以通過3
for(int i=0; i<24; i++){
//here, how to check if "i" can be divided by 3 completely(e.g. 3, 6, 15)?
}
使用MOD操作
for(int i=0; i<24; i++){
if(i%3 == 0)
// It is divisible by 3
}
檢查我的剩餘devided 3
if (i % 3 == 0) {}
if(i % 3 == 0)
%操作符提供最新的,分裂的其餘I/3
內迴路:
if (i%3 == 0)
// it can be divided by 3
%
被稱爲「mod」或「模數」,並給出了除以兩個數字時的餘數。
這些都是真實的:
6 % 3 == 0
7 % 3 == 1
7 % 4 == 3
if(i % 3 == 0){
System.out.println("can be divided by 3");
}else{
System.out.println("cant divide by 3");
}
這個問題是不是真的?
如果您正在使用一個循環,你可以使用一個事實,即每逢第三個數字可以通過3
for(int i = 0; i < 24; i += 3) {
System.out.println(i + " can be divided by 3");
System.out.println((i+1) + " cannot be divided by 3");
System.out.println((i+2) + " cannnot be divided by 3");
}
這避免了模的需要被分割並通過的因素削減的迴路數3.
那麼,你可能做(它可能有點快;這是更快我的機器上)是:
boolean canBeDevidedBy3 = ((int) (i * 0x55555556L >> 30) & 3) == 0;
代替
boolean canBeDevidedBy3 = (i % 3) == 0;
然而,乘法招只適用於-2 <= i <= 1610612735
。這個答案受this optimization question的啓發。但如果我可以給你一個提示:使用(i % 3) == 0
。它非常簡單,並且始終有效。
您有大約20個問題沒有被接受的答案。也許你可以提出更明確的問題或跟進答案,以便他們能夠被接受。 –