给定一个正整数n,请返回0到n的数字中2出现了几次。
int result = 0;
for (int i = 1; i <= n; i *= 10) {
result += (n / i + 7) / 10 * i + (n / i % 10 == 2 ? n % i + 1 : 0);
}
return result;
为什么这样写可以实现题目要求
给定一个正整数n,请返回0到n的数字中2出现了几次。
int result = 0;
for (int i = 1; i <= n; i *= 10) {
result += (n / i + 7) / 10 * i + (n / i % 10 == 2 ? n % i + 1 : 0);
}
return result;
为什么这样写可以实现题目要求
由于公司网络原因,这里不能发太长的内容,先贴一段我“翻译”后的
Python
代码,晚上下班后再更新该算法的详细解释。