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);   
    }
}
相关推荐
二哈赛车手6 小时前
新人笔记---ApiFox的一些常见使用出错
java·笔记·spring
栗子~~7 小时前
JAVA - 二层缓存设计(本地缓冲+redis缓冲+广播所有本地缓冲失效) demo
java·redis·缓存
YDS8297 小时前
DeepSeek RAG&MCP + Agent智能体项目 —— RAG知识库的搭建和接口实现
java·ai·springboot·agent·rag·deepseek
未若君雅裁8 小时前
MyBatis 一级缓存、二级缓存与清理机制
java·缓存·mybatis
AI人工智能+电脑小能手9 小时前
【大白话说Java面试题 第65题】【JVM篇】第25题:谈谈对 OOM 的认识
java·开发语言·jvm
阿维的博客日记9 小时前
Nacos 为什么能让配置动态生效?(涉及 @RefreshScope 注解)
java·spring
雨辰AI9 小时前
SpringBoot3 + 人大金仓读写分离 + 分库分表 + 集群高可用 全栈实战
java·数据库·mysql·政务
辰海Coding11 小时前
MiniSpring框架学习-完成的 IoC 容器
java·spring boot·学习·架构
小小编程路11 小时前
C++ 多线程与并发
java·jvm·c++
AI视觉网奇11 小时前
linux 检索库 判断库是否支持
java·linux·服务器