检测number是7的倍数还是包含数字7

Or *_*ith 2 java

我读了一本关于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?我该如何检测它?

ars*_*jii 5

最好将字符串排除在外:

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的倍数.