统计范围内不含'7'的数字个数(洛谷P1590题题解,Java语言描述)
程序员文章站
2022-07-13 13:43:10
...
题目要求
分析
这破题,你看他数据232-1,没安好心,基础不扎实就可能认为这是int标配,非也非也……
int是231-1作为上限的,哈哈哈……
把每一位不含7的方案数算出来,因为每一位是相互独立的,所以加起来就是答案啦。
AC代码(Java语言描述)
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
List<Long> list = new ArrayList<>(1000);
Scanner scanner = new Scanner(System.in);
int num = Integer.parseInt(scanner.nextLine());
for (int i = 0; i < num; i++) {
long limit = Long.parseLong(scanner.nextLine());
long temp, result = 0, j = 1;
while (limit != 0) {
temp = limit % 10;
if (temp >= 7) {
temp--;
}
result += (j * temp);
limit /= 10;
j *= 9;
}
list.add(result);
}
scanner.close();
for (long i : list) {
System.out.println(i);
}
}
}