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);   
    }
}
相关推荐
San813_LDD2 小时前
[C语言]《Dev-C++ 报错解决手册(Day0607 精华版)》
java·前端·javascript
Anastasiozzzz3 小时前
从有限状态机到智能体图:传统 FSM 与 Agent Graph的演进
java·人工智能·python·ai
wang09079 小时前
自己动手写一个spring之IOC_2
java·后端·spring
来杯@Java10 小时前
学生选课管理系统(基于springboot+vue前后端分离的项目)计算机毕业设计java
java·spring boot·spring·vue·毕业设计·maven·mybatis
不知名的老吴11 小时前
线程的生命周期之线程“插队“
java·开发语言·python
ANnianStriver11 小时前
PetLumina-02-后端开发与前后端联调
java·ai·sa-token
杨了个杨898211 小时前
Keepalived + Nginx + HAProxy 高可用架构部署实战案例
java·nginx·架构
马士兵教育13 小时前
Java还有前景吗?Java+AI大模型学习路线及项目?
java·人工智能·python·学习·机器学习
snow@li14 小时前
Java:理解 Gradle / 后端项目的管家 / 打包SpringBoot 应用 / 完成编译、下载依赖、运行测试、打包 JAR/WAR / 速查表
java