- 闰年判断
资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个年份,判断这一年是不是闰年。 当以下情况之一满足时,这一年是闰年: 1. 年份是4的倍数而不是100的倍数; 2. 年份是400的倍数。 其他的年份都不是闰年。 输入格式 输入包含一个整数y,表示当前的年份。 输出格式 输出一行,如果给定的年份是闰年,则输出yes,否则输出no。
- 解答程序
y = int(input())
if y % 4 == 0:
if y % 100 == 0:
if y % 400 == 0:
print('yes')
else:
print('no')
else:
print('yes')
else:
print('no')
- 经验教训 无。
- 闰年判断
资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个年份,判断这一年是不是闰年。 当以下情况之一满足时,这一年是闰年: 1. 年份是4的倍数而不是100的倍数; 2. 年份是400的倍数。 其他的年份都不是闰年。 输入格式 输入包含一个整数y,表示当前的年份。 输出格式 输出一行,如果给定的年份是闰年,则输出yes,否则输出no。
- 解答程序
y = int(input())
if y % 4 == 0:
if y % 100 == 0:
if y % 400 == 0:
print('yes')
else:
print('no')
else:
print('yes')
else:
print('no')
- 经验教训 无。
- 闰年判断
资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个年份,判断这一年是不是闰年。 当以下情况之一满足时,这一年是闰年: 1. 年份是4的倍数而不是100的倍数; 2. 年份是400的倍数。 其他的年份都不是闰年。 输入格式 输入包含一个整数y,表示当前的年份。 输出格式 输出一行,如果给定的年份是闰年,则输出yes,否则输出no。
- 解答程序
y = int(input())
if y % 4 == 0:
if y % 100 == 0:
if y % 400 == 0:
print('yes')
else:
print('no')
else:
print('yes')
else:
print('no')
- 经验教训 无。
- 01字串
资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是: 00000 00001 00010 00011 00100 请按从小到大的顺序输出这32种01串。 输入格式 本试题没有输入。 输出格式 输出32行,按从小到大的顺序每行一个长度为5的01串。 样例输出 00000 00001 00010 00011
- 解答程序
for i in range(32):
count = i
temp = ""
flag = [0, 0, 0, 0, 0]
if count >= 16:
flag[4] = 1
count = count - 16
if count >= 8:
flag[3] = 1
count = count - 8
if count >= 4:
flag[2] = 1
count = count - 4
if count == 3:
flag[1] = 1
flag[0] = 1
elif count == 2:
flag[1] = 1
flag[0] = 0
elif count == 1:
flag[1] = 0
flag[0] = 1
elif count == 0:
flag[1] = 0
flag[0] = 0
else:
flag[2] = 0
if count == 3:
flag[1] = 1
flag[0] = 1
elif count == 2:
flag[1] = 1
flag[0] = 0
elif count == 1:
flag[1] = 0
flag[0] = 1
elif count == 0:
flag[1] = 0
flag[0] = 0
else:
flag[3] = 0
if count >= 4:
flag[2] = 1
count = count - 4
if count == 3:
flag[1] = 1
flag[0] = 1
elif count == 2:
flag[1] = 1
flag[0] = 0
elif count == 1:
flag[1] = 0
flag[0] = 1
elif count == 0:
flag[1] = 0
flag[0] = 0
else:
flag[2] = 0
if count == 3:
flag[1] = 1
flag[0] = 1
elif count == 2:
flag[1] = 1
flag[0] = 0
elif count == 1:
flag[1] = 0
flag[0] = 1
elif count == 0:
flag[1] = 0
flag[0] = 0
else:
flag[4] = 0
if count >= 8:
flag[3] = 1
count = count - 8
if count >= 4:
flag[2] = 1
count = count - 4
if count == 3:
flag[1] = 1
flag[0] = 1
elif count == 2:
flag[1] = 1
flag[0] = 0
elif count == 1:
flag[1] = 0
flag[0] = 1
elif count == 0:
flag[1] = 0
flag[0] = 0
else:
flag[2] = 0
if count == 3:
flag[1] = 1
flag[0] = 1
elif count == 2:
flag[1] = 1
flag[0] = 0
elif count == 1:
flag[1] = 0
flag[0] = 1
elif count == 0:
flag[1] = 0
flag[0] = 0
else:
flag[3] = 0
if count >= 4:
flag[2] = 1
count = count - 4
if count == 3:
flag[1] = 1
flag[0] = 1
elif count == 2:
flag[1] = 1
flag[0] = 0
elif count == 1:
flag[1] = 0
flag[0] = 1
elif count == 0:
flag[1] = 0
flag[0] = 0
else:
flag[2] = 0
if count == 3:
flag[1] = 1
flag[0] = 1
elif count == 2:
flag[1] = 1
flag[0] = 0
elif count == 1:
flag[1] = 0
flag[0] = 1
elif count == 0:
flag[1] = 0
flag[0] = 0
flag = [flag[4 - i] for i in range(5)]
print("".join(map(str, flag)))
- 经验教训 1、加权输出的逻辑顺序弄反了,因此最后flag数组又做了一次翻转。 2、最初第一遍测试时没有发现count等于幂次的情况,后加上了等于号。 3、函数意识不够,事实上在上方取了count - 2^k之后才发现可以将判断统一为函数的,最初并没有发现。 4、整数列表输出为字符串的方法: “”.join(map(str, flag)) 5、python提供bin函数,利用这个可以快速将整数变为二进制,因此本题也可以这样写
for i in range(32):
print("0" * (5-len(bin(i)[2:])) + bin(i)[2:])