欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

统计范围内不含'7'的数字个数(洛谷P1590题题解,Java语言描述)

程序员文章站 2022-07-13 13:43:10
...

题目要求

P1590题目要求

统计范围内不含'7'的数字个数(洛谷P1590题题解,Java语言描述)

分析

这破题,你看他数据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);
        }
    }

}