题目:
题解:
1.判断是否为7的倍数:对7求余,余数为0表示为7的倍数。
2.判断是否包含7:依次判断每一位数字是否存在7
符合1或2的即为答案,穷举所有数字,寻找结果。
public int get7(int n) {
if (n < 7) {
return 0;
}
int count = 0;
for (int i = 7; i <= n; i++) {
boolean matched = ((i%7) == 0 || contain7(i));
if (matched) {
count++;
}
}
return count;
}
private boolean contain7(int i) {
while (i > 0) {
int n = i % 10;
if (n == 7) {
return true;
}
i = i / 10;
}
return false;
}
时间复杂度:O(N)