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

题目要求

P1590题目要求

在这里插入图片描述

分析

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

}
发布了401 篇原创文章 · 获赞 659 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_43896318/article/details/104102922