蓝桥打卡-day13

总贴:第十四届蓝桥杯三月真题刷题训练——第 13 天 (3.16)-CSDN社区

题1、特殊日期 - 蓝桥云课 (lanqiao.cn)

问题描述
对于一个日期,我们可以计算出年份的各个数位上的数字之和,也可以分别计算月和日的各位数字之和。请问从 19001900 年 11 月 11 日至 9999 年 12 月 31 日,总共有多少天,年份的数位数字之和等于月的数位数字之和加日的数位数字之和。
例如,2022 年 11 月 13 日满足要求,因为 2+0+2+2=(1+1)+(1+3)。
请提交满足条件的日期的总数量。
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
运行限制
最大运行时间:1s
最大运行内存: 256M

题解:

我采用的是纯暴力; 3层for循环 ;最外层用于月份遍历、中间层遍历月份 、内层天数遍历;
单独写出一个方法用于年份每个数相加 和 月份天数每个数相加 ,月份* 100 + 天数
注意判断闰年,闰年会多几天
(0 == i % 4 && i % 100 != 0) || (0 == i % 400)
闰年:
(1)四年一闰百年不闰:即如果year能够被4整除,但是不能被100整除,则year是闰年。
(2)每四百年再一闰:如果year能够被400整除,则year是闰年。
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        int ans = 0;
        //在此输入您的代码...
        int month[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
        for(int i = 1900 ; i <= 9999 ; i++){
            int sum1 = sum(i);
            for(int j = 1 ; j <= 12 ; j++){
              if(j == 2 && (0 == i % 4 && i % 100 != 0) || (0 == i % 400)) {
                month[2] = 29;
              }else month[2] = 28;
                for(int y = 1 ; y <= month[j] ; y++){
                    int x = j *100 + y;
                    int sum2 = sum(x);
                    if(sum1 == sum2) ans++;
                }
            }
        }
        System.out.println(ans);
    }
    static int sum (int n){
        int sum = 0;
        while(n != 0){
            sum += n % 10;
            n /= 10;
        }
        return sum;
    }
}

题2、重合次数 - 蓝桥云课 (lanqiao.cn)

问题描述
在同一天中, 从上午 6 点 13 分 22 秒到下午 14 点 36 分 20 秒, 钟表上的 分针和秒针一共重合了多少次?
注意时针、分针、秒针都围绕中心敳匀速运动。
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数, 在提交答案时只填写这个整数, 填写多余的内容将无法得分。
运行限制
最大运行时间:1s
最大运行内存: 512M

题解:

想想什么情况下分针和秒针重合 、 当第61秒的时候场合;
算出该区间的所有秒 / 61;
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int times = (14-6) * 60 * 60 + (36 - 13) * 60 - 2;
        System.out.println(times/61);
        scan.close();
    }
}

AC截图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

续写少年!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值