這裏是問題:如果每個偶數因子m也是n的一個因子,則整數定義爲另一個整數n的偶數子集。例如,18是偶數子集12,因爲18的偶數因子是2和6,這兩個因子都是12。但是18不是32的偶數子集,因爲6不是32的因子。isEvenSubset沒有返回1
這是一個大學的樣本問題;該問題明確指出:沒有其他數據結構,包括數組允許 - 因此,請在提供答案的同時考慮這一點。謝謝。
這裏是我的答案代碼:
public class IsEvenSubset {
public static void main(String[] args) {
System.out.println(isEvenSubset(18,12));
}
private static int isEvenSubset(int m, int n){
for(int i=2;i<=m;i++){
int count=0;//reset count in each round
if(m%2==0 && m%i==0){
for(int j=2;j<=n;j++){
if(n%2==0 && n%j==0){
if(i==j)count++;
}
}
if(count==0)return 0;
}
}
return 1;
}
}
根據需要此代碼沒有工作。請幫我弄清楚我在哪裏做錯了?
它爲什麼會返回一個'int'?它不應該是一個'boolean'嗎? m是或者不是n的偶數子集。 – Sweeper
@Sweeper可能是因爲這個問題最初是在C課程中使用的,然後最低限度地適應了Java。 –