Java 超除法
如果数字中的每个数字都除以该数字,则整数为超除法。示例Java 超除法,java,c++,Java,C++,如果数字中的每个数字都除以该数字,则整数为超除法。示例128将自身除法,因为128可被1、2和8整除超级除数不能被0整除 Sample Input #1 superDivide(184) Sample Output #1 true Sample Input #2 superDivide(39) Sample Output #2 false Sample Input #3 superDivide(120) Sample Output #3 false 在这里输入代码 pub
128
将自身除法,因为128
可被1、2和8整除
超级除数不能被0整除
Sample Input #1
superDivide(184)
Sample Output #1
true
Sample Input #2
superDivide(39)
Sample Output #2
false
Sample Input #3
superDivide(120)
Sample Output #3
false
在这里输入代码
public class SuperDivide {
public static void main(String[] args) {
SuperDivide obj = new SuperDivide();
boolean result = obj.checkSuper(1001);
System.out.println(result);
}
public boolean checkSuper(int num){
//write your code here
int n1;
int n2=num;
if(num%10==0)
return false;
while(num>0){
n1=num%10;
if(n2%n1==0){
num=num/10;
return true;
}
}
return false;
}
以上代码可以运行到数字,但不适用于3digit,有什么建议吗?好的,您有一个数字。让我们称之为num
。显然,我们需要一个剩余的,并使用num
初始化。因为我们根本不想修改num
,所以让我们友好地声明iffinal
。这可以防止我们意外地更改它
最后一个数字,我们称之为lastDigit
,可以通过剩余的%10确定
现在我们测试是否lastDigit==0或(num%lastDigit!=0)
->返回false
否则,我们进一步执行remaining=remaining/10
并再次测试最后一个数字,直到remaining
=0。因此,我们可以在的同时(剩余>0)
循环中包装整个内容
您所做的略有不同,因为您修改了原始的num
变量,这意味着在第二次测试中,您没有将原始num除以值,而是将修改后的值除以。结果如何?不知道。可能不太正确。一些逻辑错误,如被零除和返回的错误位置:
以下是工作代码:
public static void main(String[] args) {
SuperDivide obj = new SuperDivide();
boolean result = obj.checkSuper(66);
System.out.println(result);
}
public boolean checkSuper(int num) {
//write your code here
int n1;
int n2 = num;
while (num > 0) {
n1 = num % 10;
if (n1 == 0) {
return false;
}
if (n2 % n1 == 0) {
num = num / 10;
} else {
return false;
}
}
return true;
}
也许您的方法应该如下所示:
public boolean checkSuper(int num) {
int n1;
int n2 = num;
while(num > 0) {
if(num % 10 == 0) {
return false;
}
n1 = num % 10;
if(n2 % n1 == 0) {
num = num / 10;
} else {
return false;
}
}
return true;
}
我想这会管用的 看起来像你的家庭作业…你做了什么来诊断问题?您是否亲自调试过它,并看到中间结果与预期不符的地方?只要一位数字除以一个大数字,您的代码就会返回true。。。并循环永远为第一个数字,其中不除以大的数字…很高兴能帮助!如果您的问题得到解决,请在此接受最佳答案。虽然此代码可以解决提问者的问题,但最好解释它是如何工作的,以及它与提问者尝试过的内容之间的区别。