日期题目集

cs 复制代码
#include <stdio.h>
#include <stdbool.h>
#include <string.h>

// 题目给出的数组
int arr[100] = {
    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
};

// 判断date_str是否是arr的子序列
bool is_subsequence(const char *date_str) {
    int i = 0; // 数组下标
    int j = 0; // 字符串下标
    int len = strlen(date_str);
    while (i < 100 && j < len) {
        if (arr[i] == (date_str[j] - '0')) {
            j++;
        }
        i++;
    }
    return j == len;
}

int main() {
    // 2023年各月天数
    int days_in_month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
    int count = 0;
    char date_str[9]; // "2023mmdd\0"

    for (int month = 1; month <= 12; month++) {
        for (int day = 1; day <= days_in_month[month-1]; day++) {
            // 格式化为 2023mmdd
            sprintf(date_str, "2023%02d%02d", month, day);
            if (is_subsequence(date_str)) {
                count++;
            }
        }
    }

    printf("符合条件的不同日期数量:%d\n", count);
    return 0;
}
cs 复制代码
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int month_day[]={31,28,31,30,31,30,31,31,30,31,30,31};
  int total_days=1;
  int cnt=0;
  for(int month=0;month<12;month++)
  {
    total_days+=month_day[month];
  }
  for(int year=1901;year<=2000;year++)
  {
    if(year%400==0||(year%4==0&&year%100!=0)) month_day[1]=29;
    for(int month=0;month<12;month++)
    {
      int weekday=total_days%7;
      if(weekday==0) cnt++;
      total_days+=month_day[month];
    }
  }
  printf("%d",cnt);
  return 0;
}
cs 复制代码
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int month_day[]={31,28,31,30,31,30,31,31,30,31,30,31};
  int total_day=6;
  int cnt=0;
  for(int month=0;month<12;month++)
  {
    for(int day=1;day<=month_day[month];day++)
    {
      int weekday=total_day%7;
      if(day==1||day==11||day==21||day==31||weekday==6||weekday==0) cnt++;
      total_day++;
    }
  }
  printf("%d",cnt);
  return 0;
}
cs 复制代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int month_day[]={31,28,31,30,31,30,31,31,30,31,30,31};
int num[]={13,1,2,3,5,4,4,2,2,2};
int sum(const char *data)
{
  int a[10];
  int total=0;
  for(int i=0;i<8;i++)
  {
    a[i]=data[i]-'0';
    total+=num[a[i]];
  }
  return total;
}

int main(int argc, char *argv[])
{
  int cnt=0;
  char data[10];
  for(int year=2000;year<=2024;year++)
  {
    if(year%400==0||(year%4==0&&year%100!=0)) month_day[1]=29;
    else month_day[1]=28;
    for(int month=1;month<=12;month++)
    {
      int max=month_day[month-1];
      if(year==2024&&month==4) max=13;
      for(int day=1;day<=max;day++)
      {
        sprintf(data,"%04d%02d%02d",year,month,day);
        int total=sum(data);
        if(total>50) cnt++;
      }
      if(year==2024&&month==4) break;
    }
  }
  printf("%d",cnt);
  return 0;
}
cs 复制代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int check(int num)
{
  while(num>0)
  {
    if(num%10==1) return 1;
    num/=10;
  }
  return 0;
}

int main(int argc, char *argv[])
{
  int month_day[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
  int sum=0;
  int weekday=0;
  for(int month=1;month<=12;month++)
  {
    for(int day=1;day<=month_day[month];day++)
    {
      int x=check(month);
      int y=check(day);
      int z=(weekday==1);
      if(x||y||z) sum+=5;
      else sum+=1;
      weekday=(weekday+1)%7;
    }
  }
  printf("%d",sum);
  return 0;
}
相关推荐
汀、人工智能1 分钟前
[特殊字符] 第57课:搜索旋转排序数组
数据结构·算法·数据库架构·图论·bfs·搜索旋转排序数组
倦王5 分钟前
力扣日刷47
算法·leetcode·职场和发展
MicroTech20258 分钟前
突破量子数据加载瓶颈,MLGO微算法科技推出面向大规模量子计算的分治态制备技术
科技·算法·量子计算
码王吴彦祖9 分钟前
顶象 AC 纯算法迁移实战:从补环境到纯算的完整拆解
java·前端·算法
SccTsAxR14 分钟前
算法基石:手撕离散化、递归与分治
c++·经验分享·笔记·算法
wuweijianlove15 分钟前
算法测试中的数据规模与时间复杂度匹配的技术4
算法
Q741_14740 分钟前
每日一题 力扣 3655. 区间乘法查询后的异或 II 模拟 分治 乘法差分法 快速幂 C++ 题解
c++·算法·leetcode·模拟·快速幂·分治·差分法
The_Ticker40 分钟前
印度股票实时行情API(低成本方案)
python·websocket·算法·金融·区块链
夏乌_Wx1 小时前
剑指offer | 2.4数据结构相关题目
数据结构·c++·算法·剑指offer·c/c++
AI成长日志2 小时前
【笔面试算法学习专栏】哈希表基础:两数之和与字母异位词分组
学习·算法·面试