校园赛2(做题代码)

# 1
# print(36*30)
# print(1080/10)

# 2
import math

a = 2**2023
print(a % 1000)

# 二进制与八进制位数和相等暴力

# 保存结果数组
ans = [0]
i = 1
while True:
    # 二进制
    b = list(map(int, bin(i)[2:]))
    # 八进制
    o = list(map(int, oct(i)[2:]))
    # 判断位数是否相等
    if sum(b) == sum(o):
        ans.append(i)
    # 结束条件
    if len(ans) == 30:
        break
    i += 1

print(ans[23])
data = '''
393353 901440 123481 850930 423154 240461
  373746 232926 396677 486579 744860 468782
  941389 777714 992588 343292 385198 876426
  483857 241899 544851 647930 772403 109929
  882745 372491 877710 340000 659788 658675
  296521 491295 609764 718967 842000 670302
'''
# 二维数组大小
n, x = 6, 6
# print(data)
# 对数据进行格式化
data = data.split()
data = list(map(int, data))
# 建立dp数组
dp = [0] * len(data)


# print(dp)
# 求因数的函数
def yueshu(n):
    ans = 0
    for i in range(1, n + 1):
        if n % i== 0:
            ans += 1
    return ans


# dp找到答案
max_ = 0
max_count=0
for i in range(len(data)):
    a=yueshu(data[i])
    # 如果小于就交换
    if max_count < a:
        max_count=a
        max_= data[i]
print(max_)
input_data='''
   0000100010000001101010101001001100000011
  0101111001111101110111100000101010011111
  1000010000011101010110000000001011010100
  0110101010110000000101100100000101001001
  0000011010100000111111001101100010101001
  0110000110000000110100000000010010100011
  0100110010000110000000100010000101110000
  0010011010100110001111001101100110100010
  1111000111101000001110010001001011101101
  0011110100011000000001101001101110100001
  0000000101011000010011111001010011011100
  0000100000011001000100101000111011101100
  0010110000001000001010100011000010100011
  0110110000100011011010011010001101011011
  0000100100000001010000101100000000000010
  0011001000001000000010011001100101000110
  1110101000011000000100011001001100111010
  0000100100111000001101001000001010010001
  0100010010000110100001100000110111110101
  1000001001100010011001111101011001110001
  0000000010100101000000111100110010101101
  0010110101001100000100000010000010110011
  0000011101001001000111011000100111010100
  0010001100100000011000101011000000010101
  1001111010010110011010101110000000101110
  0110011101000010100001000101001001100010
  1101000000010010011001000100110010000101
  1001100010100010000100000101111111111100
  1001011010101100001000000011000110110000
  0011000100011000010111101000101110110001
'''
# 格式化输入
input_data = input_data.split()
input_data = [list(map(int, line)) for line in input_data]

# dfs 去递归搜索
# a = len(input_data[0])
# b = len(input_data)
# print(a, b)  # a=40, b=30

# 递归函数
def dfs(x, y):
    if x < 0 or x >= 30 or y < 0 or y >= 40:
        return
    if input_data[x][y] != 0:
        return
    input_data[x][y] = 2
    dfs(x - 1, y)
    dfs(x + 1, y)
    dfs(x, y - 1)
    dfs(x, y + 1)

dfs(0, 0)

ans = 0
for line in input_data:
    ans += line.count(2)

print(ans)
# 输入转化成字符串类型
dp=str(input())
# 对dp进行循环左移一位
dp=dp[1:]+dp[0]
print(int(dp))
# 贪心算法
# 输入
n=int(input())

ans=list(map(int,input().split()))
# 结果
x=0
for i in range (1,n):
    if ans[i]
# 做个hash
hash_='aeiou'
# 输入
ans=str(input())
# 反转字符串找到第一个就是最后一个值
ans=ans[::-1]
# 遍历字母
for i in ans:
    # 找到字母
    if i in hash_:
        print(i)
        break

 


#
def dfs(n):
    if n <10:
        return
    # 处理过程
    n=list(map(int,str(n)))
    dp=1
    for i in n:
        if not i==0:
            dp*=i
    print(dp)
    # 进入下一层
    dfs(dp)

n=int(input())
if n<10:
    print(n)
dfs(n)

你可能感兴趣的:(python,开发语言,蓝桥杯)