返回题解分享
讨论 / 题解分享/ 帖子详情

日期统计(结果填空) - 题解

求的是符合条件的日期,不知道哪里不对



#include<bits/stdc++.h>
using namespace std;
char a[110];
int day, ans;
bool check(int day)
{
	int yy = day / 10000, mm = day / 100 % 100, dd = day % 100;
	if (yy == 2023)
	{
		if (mm < 1 || mm>12) return false;
		else
		{
			if (mm == 1 || mm == 3 || mm == 5 || mm == 7 || mm == 8 || mm == 10 || mm == 12)
			{
				if (dd >= 1 && dd <= 31) return true;
				else return false;
			}
			else if (mm == 2)
			{
				if (dd >= 1 && dd <= 28) return true;
				else return false;
			}
			else if (mm == 4 || mm == 6 || mm == 9 || mm == 11)
			{
				if (dd >= 1 && dd <= 30) return true;
				else return false;
			}
		}
	}
	else if(yy!=2023) return false;
}
void dfs(int t)
{
	if (t == 9)
	{
		if (check(day)) cout << day << endl;
		return;
	}
	for (int i = 1; i <= 100; i++)
	{
		int x = a[i] - '0';
		for (int i = 7; i >= t; i--)
			x *= 10;
		day += x;
		dfs(t + 1);
		day -= x;
	}
}
int main()
{
	for (int i = 1; i <= 100; i++)
		cin >> a[i];
	dfs(1);
	return 0;
}
0 回复 0 转发 0 喜欢 3 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!