0
点赞
收藏
分享

微信扫一扫

第十三届蓝桥杯大赛软件赛省赛B组python个人解答(1)

腊梅5朵 2022-04-14 阅读 90
python

第十三届蓝桥杯大赛软件赛省赛B组python个人解答(1)

试题 A: 排列字母

小蓝要把一个字符串中的字母按其在字母表中的顺序排列。
例如,LANQIAO 排列后为 AAILNOQ。
又如,GOODGOODSTUDYDAYDAYUP 排列后为 AADDDDDGGOOOOPSTUUYYY

请问对于以下字符串,排列之后字符串是什么?
WHERETHEREISAWILLTHEREISAWAY

// 比较简单直接上
a=input()
b=[]
for i in a:
    b.append(i)
b.sort()
print("".join(str(i) for i in b))

试题 B: 寻找整数

有一个不超过 1017 的正整数 n,知道这个数除以 2 至 49 后的余数如下表
所示,求这个正整数最小是多少。
在这里插入图片描述

// A:解题
#这题其实第一个想法就是暴力破解,
#但是当把所有条件都写下去会发现运行时间非常长,
#所以只能每一列选取数来作为限制条件,待结果出来再验算。
import math
import datetime
starttime = datetime.datetime.now()
print(starttime )
s=int(math.pow(10,17))
z=[]
for i in range(0,s,11):#这里是因为该数可被11整除,我们步长为11可大大减少运行时间
        if i%10 ==9:
           if i%11 == 0:
              if i%12 == 5:
                  if i%13 == 10:
                     if i%47==5:
                        if i%48==41:
                           if i%25== 9:
                                if i%37== 22:
                                    if i % 43 == 11:
                                    z.append(i)
                                    print(z)
                                    endtime = datetime.datetime.now()
                                    print(endtime - starttime)

在这里插入图片描述
运行时间1分39秒,在考试时还是能接受的,当然我相信还有更好的办法,欢迎大家来交流!

持续更新中。。。。。。。。。

举报

相关推荐

0 条评论