蓝桥杯2018年省赛1+2

@[TOC]2018年省赛1 分数

2018年省赛1 分数*

题目描述

1/1 + 1/2 + 1/4 + 1/8 + 1/16 + …
每项是前一项的一半,如果一共有20项,
求这个和是多少,结果用分数表示出来。
类似:
3/2
当然,这只是加了前2项而已。分子分母要求互质。

注意:
需要提交的是已经约分过的分数,中间任何位置不能含有空格。
请不要填写任何多余的文字或符号。

思路

利用数学知识,可以将该式子变换为同一个分母,由于1是2的0次方,2是2的1次方,即可得知第20项为2的19次方,通过通分,可以得知,分子为2的0次方到2的19次方的和,可以利用循环来写。

代码

n=0
for i in range(0,20):
    n=n+2**i
    b=2**19
#print(str(n)+"/"+str(b))   #两种方式都可以输出
print("{}/{}".format(n,b))

1048575/524288

注意for循环是左闭右开的,所以要写到20,我第一次就因为这个出现了问题,找了10分钟错误

2018年省赛2 星期一

题目描述

整个 2020 世纪(190119011901 年 111 月 111 日至 200020002000 年 121212 月 313131 日之间),一共有多少个星期一?(不要告诉我你不知道今天是星期几)

思路

年份题大部分都是要算闰年的,把计算闰年的方法记住

if i%400==0 or i%4==0 and i%100!=0:

一个世纪有100年,假设都是正常的年份,100年有365100天,通过计算闰年方法,即可知道,1901年到2000年有25个闰年,那么这个世纪就有365100+25天,通过对7整除,能知道一个世纪有多少个星期,天数再对7取余数,可以知道这一个世纪不是刚好有之前算的星期数,然后根据取余求得的数字,以及2000年12月31日是周日,最后求到底有几个星期一。

代码

count=0
for i in range(1901,2001):
    if i%400==0 or i%4==0 and i%100!=0:
        count+=1
#print(count)
all=365*100+25
week=all//7
#print(week)
res=all%7
#print(res)
print(week)

5217

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值