P8752 [蓝桥杯 2021 省 B2] 特殊年份——Java解答

P8752 蓝桥杯 2021 省 B2 特殊年份

题目描述

今年是 2021 年,2021 这个数字非常特殊, 它的千位和十位相等, 个位比百位大 1 1 1,我们称满足这样条件的年份为特殊年份。

输入 5 5 5 个年份,请计算这里面有多少个特殊年份。

输入格式

输入 5 5 5 行,每行一个 4 4 4 位十进制数(数值范围为 1000 1000 1000 至 9999 9999 9999),表示一个年份。

输出格式

输出一个整数,表示输入的 5 5 5 个年份中有多少个特殊年份。

输入输出样例 #1

输入 #1

复制代码
2019
2021
1920
2120
9899

输出 #1

复制代码
2

说明/提示

【样例说明】

2021 和 9899 是特殊年份,其它不是特殊年份。

蓝桥杯 2021 第二轮省赛 B 组 F 题。
洛谷链接

解题思路

1.把"是否特殊"封装成布尔函数 specialYear(int year)

  • 用 / 与 % 依次取出千、百、十、个位
  • 判断 千 == 十 && 个 - 百 == 1

2.读入 5 个年份,存到数组

3.遍历数组,调用上述函数计数

  1. 输出结果
java 复制代码
public class Main {
    /* 判断年份是否特殊 */
    private static boolean specialYear(int year) {
        int g = year % 10;              // 个位
        int s = (year / 10) % 10;       // 十位
        int b = (year / 100) % 10;      // 百位
        int q = year / 1000;            // 千位
        return q == s && g - b == 1;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] years = new int[5];
        for (int i = 0; i < 5; i++) {
            years[i] = sc.nextInt();
        }

        int count = 0;
        for (int year : years) {
            if (specialYear(year)) {
                count++;
            }
        }
        System.out.println(count);   
    }
}
相关推荐
代码什么用7 小时前
Spring基础使用
java·后端·spring
Su米苏7 小时前
Spring AI 中MCP 与普通 @Tool的区别
java·人工智能·spring
码云数智-园园7 小时前
unique_ptr 还是 shared_ptr?C++ 智能指针选型与内存泄漏实战分析
java·开发语言
老板一杯拿铁7 小时前
Java 异常体系详解:从字节码原理到最佳实践
java
蜗牛互联网7 小时前
Java 17 HttpClient调用文件转写API的超时与失败回退
java·人工智能·后端
禾小西8 小时前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?
java·开发语言·redis
我不是阵雨8 小时前
JDK 21虚拟线程Pinning陷阱:一文拔钉解困
java·开发语言
小卡车5558 小时前
java反射、自定义注解的应用(自定义分页)
java
BLUcoding9 小时前
接口服务公网超时排查记录:SecureRandom 阻塞问题分析与解决
java·linux·springboot·aes·securerandom
yuniko-n9 小时前
【JUC】Lock 和 synchronzied 锁
java