每个日期可以转成8位数字,比如 2020年4月28日 对应的就是 20200428。请找出从现在开始满足条件的1个最近的日期,这个日期中包含m个n数字,m(1<=m<=6),n(1<=n<=9)由键盘输入。 输入格式: 输入m(1<=m<=6),n(1<=n<=9),空格分开。 输出格式: 符合要求的日期。 输入样例1: 在这里给出一组输入。例如: 6 1 输出样例: 在这里给出相应的输出。例如: 2101-11-11
时间: 2023-11-27 18:51:15 浏览: 13
思路:从当前日期往后遍历,每次将日期转换成8位数字后,判断数字中包含的n的个数是否等于m即可。
代码实现:
```python
import datetime
m, n = map(int, input().split())
today = datetime.datetime.now().date()
delta = datetime.timedelta(days=1)
date_format = "%Y%m%d"
while True:
date_str = today.strftime(date_format)
if str(n) * m in date_str:
print(today.strftime("%Y-%m-%d"))
break
today += delta
```
注意:需要将日期转换成字符串再进行判断。
相关问题
每个日期可以转成8位数字,比如 2020年4月28日 对应的就是 20200428。请找出从现在开始满足条件的1个最近的日期,这个日期中包含m个n数字,m(1<=m<=6),n(1<=n<=9)由键盘输入。 输入格式: 输入m(1<=m<=6),n(1<=n<=9),空格分开。 输出格式: 符合要求的日期。
这道题可以通过模拟日期的方式来判断每个日期是否符合条件,然后找到最近的符合条件的日期。
具体思路如下:
1. 获取当前日期,并将其转换为8位数字格式。
2. 从当前日期开始往后遍历每个日期,直到找到符合条件的日期或者超过了一年的时间(365天)。
3. 对于每个遍历到的日期,判断其是否包含m个n数字。首先将日期转换为字符串,然后遍历字符串中的每个字符,如果字符等于n,则将计数器加1。如果计数器达到了m,则说明该日期符合条件,输出该日期并结束程序。
4. 如果遍历完一年的时间还没有找到符合条件的日期,则输出"不存在符合条件的日期"。
下面是对应的Python代码实现:
```python
import datetime
# 获取当前日期并转换为8位数字格式
current_date = datetime.datetime.now().strftime("%Y%m%d")
# 读入m和n
m, n = map(int, input().split())
# 遍历每个日期,找到符合条件的日期
for i in range(365):
# 计算当前日期
date = (datetime.datetime.strptime(current_date, "%Y%m%d") + datetime.timedelta(days=i)).strftime("%Y%m%d")
# 判断该日期是否符合条件
count = 0
for digit in date:
if digit == str(n):
count += 1
if count == m:
print(date)
exit()
# 如果遍历完一年的时间还没有找到符合条件的日期,则输出"不存在符合条件的日期"
print("不存在符合条件的日期")
```
每个日期可以转成8位数字,比如2018年5月12日对应的就是 20180512。小明发现,自己的生日转成8位数字后,8个数字都没有重复,而且自他出生之后到今天,再也没有这样的日期了。请问小明的生日是哪天?
假设小明的生日为YYYY年MM月DD日,则他的生日转成8位数字为:YYYYMMDD。由于这8个数字互不重复,且自他出生之后到今天,再也没有这样的日期了,我们可以得出以下结论:
1. YYYY的范围必须是4位数,即在1000到9999之间;
2. MM的范围必须是2位数,即在01到12之间;
3. DD的范围必须是2位数,即在01到31之间。
因此,我们可以列出以下条件:
1. 1000 <= YYYY <= 9999;
2. 01 <= MM <= 12;
3. 01 <= DD <= 31;
4. YYYYMMDD这个8位数字必须互不相同。
我们可以编写程序来遍历所有符合条件的日期,检查它们的8位数字是否互不相同。最后,找到符合条件的日期即为小明的生日。
经过计算,我们发现小明的生日是19850712。