8
是小九的幸运数字,小九想知道在1~n
的数中有多少个数字含有8
。
样例
样例1
输入: n = 20
输出: 2
解释:
只有8,18 含有8。
样例2
输入: n = 100
输出: 19
解释:
有8,18,28,38,48,58,68,78,80,81,82,83,84,85,86,87,88,89,98。
注意事项
1 <= n <= 1000000
class Solution {
public:
/**
* @param n: count lucky numbers from 1 ~ n
* @return: the numbers of lucky number
*/
int luckyNumber(int n) {
// Write your code here
if(n < 8)
{
return 0;
}
int ret = 0;
for(int i = 8; i <= n; i++)
{
if(iseight(i))
{
ret++;
}
}
return ret;
}
bool iseight(int num)
{
while(num)
{
int tmp = num % 10;
if(tmp == 8)
return true;
num = num / 10;
}
return false;
}
};