【蓝桥杯真题2-难度:简单】武功秘籍 - 2022.11.18
本帖最后由 无理想的闲鱼 于 2022-11-19 23:10 编辑【2014】省赛-填空题
题目描述:
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小明到 X 山洞探险,捡到一本有破损的武功秘籍(2000 多页!当然是伪造的)。他注意到:书的第 10 页和第 11 页在同一张纸上,但第 11 页和第 12 页不在同一张纸上。
小明只想练习该书的第 81 页到第 92 页的武功,又不想带着整本书。请问他至少要撕下多少张纸带走?
变式:如果是第189页到209页呢?你有什么快速的方法吗?
如果你写的好,还有注释,我会看情况评分{:10_329:}
**** Hidden Message *****
上一篇:【蓝桥杯真题1-难度:简单】积分之谜 链接:https://fishc.com.cn/thread-220854-1-1.html
下一篇:【蓝桥杯真题3-难度:简单】九进制转十进制 链接:https://fishc.com.cn/thread-220966-1-1.html
瞅瞅答案 {:5_110:} {:5_109:} 思路有了,但想看看大佬的 想学习 1 11 不错 本帖最后由 Ftxz1034 于 2022-11-18 16:05 编辑
x = input("你想练习武功秘籍的起始页码是:")
x = int(x)
y = input("你想练习武功秘籍的终止页码是:")
y = int(y)
j = y - x + 1
if j % 2 == 0:
if x % 2 == 0:
print("你需要带走",j/2,"张纸")
else:
print("你需要带走",j/2 + 1,"张纸")
else:
print("你需要带走",(j + 1)/2,"张纸")
无理想的闲鱼 发表于 2022-11-18 15:25
可能有点小小的问题,
paper(80,82),应该输出的要是2
但是代码却输出的是1
改过来了,谢谢提醒 lxping 发表于 2022-11-18 13:42
可能有点小小的问题,
paper(80,82),应该输出的要是2
但是代码却输出的是1 66666666 学习~ 本帖最后由 lxping 于 2022-11-18 15:30 编辑
def papers(num_one,num_two):
if num_one % 2 == 0:
num_paper = math.ceil((num_two - num_one + 1)/2)
else:
num_paper = math.ceil((num_two - num_one + 1)/2) + 1
return num_paper
papers(81,92)
7
papers(80,82)
2 由 第 10 页和第 11 页在同一张纸上,得知了当 x 为偶数时,第 x 页和第 x + 1 页是同张纸的
当然, x + 1 也会是奇数
因为 81 是奇数,所以它会将80页撕下来,还因为92是偶数,他也会把第93页撕下来
列出算式:(93 - 80) / 2 = 6.5,向上取整为 7,所以答案是 7
变式根据上面的方法算即可
因为 189 为奇数,所以会把 188 页撕下来,209 页本来就是奇数,所以不用管他
得出 (209-188) / 2 = 10.5 ,向上取整得 11,所以 print(11) 即可。
看看~
页:
[1]