蓝桥杯2023年B组 C/C++ 第一题 日期统计

题目:日期统计

网上很多都用的C++,对C语言者很不友好,故而出此篇

C语言暴力枚举

思路:

1、先列出所有可能出现的日期

2、使用循环遍历数组,找到满足日期的条件,计数器加一

3、打印日期

验证方法:

可以创建一个稍微小的测试数组来测试

改进原则:

1、列出所有可能出现的日期不用存储

2、固定格式的前四位可以先放入初始化数组

代码实现:

#include <stdio.h>
#include <stdlib.h>
//本题的思路,把每一天可能出现的日期通过循环压缩列举出来,然后遍历查找
int main()
{
  // 请在此输入您的代码
  int arr[110]={0,5,6,8,6,9,1,6,1,2,4,9,1,9,8,2,3,6,4,7,7,5,9,5,0,3,8,7,5,8,1,5,8,6,1,8,3,0,3,7,9,2,7,0,5,8,8,5,7,0,9,9,1,9,4,4,6,8,6,3,3,8,5,1,6,3,4,6,7,0,7,8,2,7,6,8,9,5,6,5,6,1,4,0,1,0,0,9,4,8,0,9,1,2,8,5,0,2,5,3,3};
  int ans=0;//计数器
  int day[]={0,31,28,31,30,31,30,31,31,30,31,30,31};//2023年的日期
  int i,j,k;
  for(i=1;i<=12;i++){
    for(j=1;j<=day[i];j++){
      int date[]={0,2,0,2,3,i/10,i%10,j/10,j%10};// /10拿到两位数的十位 %10拿到两位数的个位
      int index=1;//
      for(k=1;k<=100;k++){
        if(arr[k]==date[index]){
          index++;
          if(index>8){
            ans++;
            break;//不用继续找20230101了
          }
        }
      }
    }
  }
  printf("%d",ans);
  return 0;
}

总结:别灰心,做出此题你就击败了50%的对手了

虽说是第一题,也采用的是最简单的暴力枚举,但是实际操作起来还是有些难度,新手期还是得多加油

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值