我读了一本关于Java挑战的书,它提出了下一个问题:
创建一个函数,该函数获取一个数字作为参数,并检测number是7的倍数还是包含数字7.
签名是: public boolean find7(int num)
我创建这个函数,当数字在0到99之间时,由下一个条件:
if (num mod 7 == 0 || num / 10 ==7 || num mod 10 == 7)
return true;
Run Code Online (Sandbox Code Playgroud)
但数量大于99的是什么?像177,或709?我该如何检测它?
最好将字符串排除在外:
public static boolean check(final int n) {
int m = Math.abs(n);
while (m > 0) {
if (m % 10 == 7)
return true;
m /= 10;
}
return n % 7 == 0;
}
Run Code Online (Sandbox Code Playgroud)
所述while-loop检查每个位并测试它是否是7; 如果是,我们返回true,如果不是,我们继续.只有当没有数字是7时,我们才能到达最终的返回语句,此时我们返回该数字是7的倍数.