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);   
    }
}
相关推荐
曹轲恒5 小时前
Java中断
java·开发语言
xxxmine5 小时前
Java并发wait(timeout)
java
冰冰菜的扣jio6 小时前
Redis缓存问题——一致性问题、事务、持久化
java·spring·mybatis
施棠海6 小时前
监听与回调的三个demo
java·开发语言
毕设源码-钟学长6 小时前
【开题答辩全过程】以 家政服务平台为例,包含答辩的问题和答案
java
sheji34169 小时前
【开题答辩全过程】以 家庭教育资源网为例,包含答辩的问题和答案
java
百***78759 小时前
Grok-4.1与GPT-5.2深度对比:技术差异、适用场景及Python集成指南
java·python·gpt
Mr -老鬼9 小时前
Java VS Rust
java·开发语言·rust
北凉军9 小时前
java连接达梦数据库,用户名是其他库的名称无法指定库,所有mapper查询的都是以用户名相同的库内的表
java·开发语言·数据库