算法设计-回文日期

Problem A. 2018102

时间限制 1000 ms
内存限制 64 MB

题目描述

2018年10月2日是一个神奇的日子,因为将数字连起来就变成了2018102,2018102是一个正读倒读都一样的整数。

那么,问题来了,从公元1年1月1日到x年y月z日,有多少个这样神奇的日子?

注意:对于任意一天,a年b月c日中的a, b, c这三个数都不能有前导零,且要求是合法的日子。别忘记考虑闰年。

输入数据

三个整数 x, y, z (1≤x≤2018, 1≤y≤12, 1≤z≤31) 表示x年y月z日,保证日期合法。

输出数据

回文日期的个数(一个整数)。

样例输入

1000 1 1

样例输出

1487

// Author     : 农村娃的成长之路
// Time       : 2019/9/24 21:07
// File       : Plabindnome.java
// Describe   : 求指定日期之间的回文数
// IDE        : IntelliJ IDEA


import java.util.Scanner;

public class Plabindnome {
   
    public static void main(String[] args) {
   
        Scanner in = new Scanner(System.in);
        int x = in.nextInt();       // 输入的年份
        String str_x = x + "";
        int y = in.nextInt();       // 输入的月份
        int z = in.nextInt();
        String str_z = z + "";// 输入的日期
        int count = 0;             // 计数器

        for (int i = 1; i < x; i++) {
   //根据输入年分设定外层循环的范围
            for (int j = 1; j <= 12; j++) {
   // 根据输入的月份限定范围
                if (j == 1 || j == 3 || j == 5 || j == 7 || j == 8 || j == 10 || j == 12) {
   
                    for (int k = 1; k <= 31; k++) {
   
                        String string = i + "" + j + k;// 将输入的时间转换为字符串
//                            if (Integer.toString(i).charAt(0) == Integer.toString(k).charAt(str_z.length() - 1)) {//判断年的首位和日期的末位是否一致
                        if (new StringBuffer(string).reverse().toString
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值