java IsEventSubset未返回1
问题是:如果m的每个偶数因子也是n的因子,则整数被定义为另一个整数n的偶数子集。例如,18是12的偶数子集,因为18的偶数因子是2和6,而这两个因子都是12的因子。但是18不是32的偶数子集,因为6不是32的因子
这是一个大学的样本问题;问题,明确地说:< /强>不允许包含数组的附加数据结构-因此,在提供答案时请考虑这一点。多谢各位
这是我的答案代码:
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;
}
}
此代码未按预期工作。请帮我找出我哪里做错了
# 1 楼答案
您正在检查
m
和n
是否为偶数,而不是检查它们的因子是否为偶数。此外,不需要内环,只需找到第一个数的所有偶数因子,并检查它们是否也是第二个数的因子isEvenSubset(18,12)
返回true
和isEvenSubset(18,32)
返回false