蓝桥杯真题训练18

蓝桥杯真题训练

1-第几个幸运数字

到 X 星球旅行的游客都被发给一个整数,作为游客编号。

X 星的国王有个怪癖,他只喜欢数字 3,53,5 和 77。

国王规定,游客的编号如果只含有因子:3,5,73,5,7,就可以获得一份奖品。

我们来看前 1010 个幸运数字是:

3 5 7 9 15 21 25 27 35 453579152125273545
因而第 1111 个幸运数字是: 4949
小明领到了一个幸运数字 5908470958750559084709587505,他去领奖的时候,人家要求他准确地说出这是第几个幸运数字,否则领不到奖品。

请你帮小明计算一下,5908470958750559084709587505 是第几个幸运数字。

count = 0
for i in range(30):
    for j in range(30):
        for k in range(30):
            if 3**i * 5**j * 7**k <=  59084709587505:
                count += 1
            else:
                break
print(count-1)

解题思路:把题目看懂,暴力找就可。

2-约数个数

1200000 有多少个约数(只计算正约数)。

count = 0
for i in range(1,int(1200000/2)+1):
    if 1200000 % i ==0:
         count = count +1
print(count+1)

解题思路:这太简单了,看代码。

3-砝码称重

你有一架天平和 N 个砝码,这 N 个砝码重量依次是 W_1, W_2, · · · ,
请你计算一共可以称出多少种不同的重量? 注意砝码可以放在天平两边

n = int(input())
a = list(map(int,input().split(" ")))
sum = 0
for i in range(n):
    sum = sum + a[i]
dp = [[0 for i in range(sum+1)] for i in range(n+1)]
dp[0][0] = 1
for i in range(1,len(a)+1):
    for j in range(sum + 1):
        if dp[i-1][j] == 1:
            dp[i][j] = 1
            dp[i][j + a[i-1]] = 1
            dp[i][abs(j-a[i-1])] =1
count = 0
for i in range(sum + 1):
    if dp[n][i]==1:
        count =count +1
print(count-1)

解题思路:参考文章:https://blog.csdn.net/asbbv/article/details/117253522?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164699562816780271959634%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164699562816780271959634&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-2-117253522.pc_search_result_cache&utm_term=%E8%93%9D%E6%A1%A5%E6%9D%AF%E7%A0%9D%E7%A0%81%E7%A7%B0%E9%87%8D&spm=1018.2226.3001.4187,我用python改编它的c++代码 但是却说我超时了,很疑惑。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值