@ 蓝桥杯 练习系统 ALGO-54
资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
首先给出简单加法算式的定义:
如果有一个算式(i)+(i+1)+(i+2),(i>=0),在计算的过程中,没有任何一个数位出现了进位,则称其为简单的加法算式。
例如:i=3时,3+4+5=12,有一个进位,因此3+4+5不是一个简单的加法算式;又如i=112时,112+113+114=339,没有在任意数位上产生进位,故112+113+114是一个简单的加法算式。
问题:给定一个正整数n,问当i大于等于0且小于n时,有多少个算式(i)+(i+1)+(i+2)是简单加法算式。其中n<10000。
输入格式
一个整数,表示n
输出格式
一个整数,表示简单加法算式的个数
测试样例
输入:
4
输出:
3
AC code:
import java.io.IOException;
import java.io.InputStream;
public class Main {
public static void main(String[] args) throws IOException {
int n = nextInt(System.in), cnt = 1;
for (int k = 1000; k >= 1; k /= 10) {
if (n >= k) {
n = Math.min(n, (int)(k * 3.3333) - 1);
cnt += n - k + 1;
}
}
System.out.println(cnt);
}
static int nextInt(InputStream in) throws IOException {
int n = 0, c = in.read();
while (c < '0' || c > '9') c = in.read();
while (c >= '0'&& c <='9') {
n = n * 10 + (c & 0xf);
c = in.read();
}
return n;
}
}
蓝桥的题,还是一如既往的简单
就是一道规律题,随手翻了几个博客看的不知所云