首页 > 编程语言 >尝试了一下编程挑战赛

尝试了一下编程挑战赛

时间:2022-11-23 22:33:01浏览次数:40  
标签:尝试 return mianzi 编程 lst result str 挑战赛 输入


不太习惯比赛用的编辑器,没法做过程的调试,这个就很考基本功了。
一是是对算法已经完全心理有数,要不然调试起来很困难。
二是要对语法非常熟,像我这种经常要查语法帮助的人,哈哈哈。

尝试了一下编程挑战赛_开发语言

 100分共四道题,我只得分47.5

后面在本机环境下重做了一下,习惯了IDE后回不去了。

题目如下:

1、题目名称:寻因找祖 寻找因子个数为n的最小整数x.

2、题目名称:通货膨胀-x国货币 X国发行货币最高面额为n。 次高面额为n的因子。 以此类推。 X国最多发行多少种货币。

3、题目名称:莫名其妙的键盘 有一个神奇的键盘,你可以用它输入a到z的字符,然而每当你输入一个元音字母(a,e,i,o,u其中之一)的时候,已输入的字 符串会发生一次反转! 比方说,当前输入了tw,此时再输入一个o,此时屏幕上的字符串two会反转成owt。 现给出一个 字符串,若用该键盘输入,有多少种方法可以得到?

4、题目名称:三而竭 一鼓作气再而衰三而竭。 小艺总是喜欢把任务分开做。 小艺接到一个任务,任务的总任务量是n。 第一天小艺能完成x份 任务。 第二天能完成x/k。 。。。 第t天能完成x/(k^(t-1))。 小艺想知道自己第一天至少完成多少才能完成最后的任务。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Project: game
# File : main.py
# Author : Long.Xu <[email protected]>
# http://gnolux.blog.csdn.net
# QQ:26564303 weixin:wxgnolux
# Time : 2022/9/4 08:51
# Copyright 2022 Long.Xu All rights Reserved.
import math


def s1(n):
"""
求n因子的最小整数
:param n:
:return:
"""

def get_pcs(num):
result = 0
lst = []
for i in range(1, int(math.sqrt(num)) + 1):
r = num / i
if int(r) == r:
lst.append(int(r))
result = result + 1
if i != int(r):
lst.append(i)
result = result + 1
# print(num,lst)
return result, lst

i = 1
while True:
r, ls = get_pcs(i)
if r == n: break
i = i + 1

print("试题1:因子个数为 %s 的最小整数是:%s" % (n, i), ls)


def s2(n):
"""
一套货币最高面值为n,那么次面值为n的最大因子n(i),
次次面值为n(i)的最大因子n(i+1),依此类推
求一个最大面值货币所包含的所有面值。
:param n:
:return:
"""
result = None
mianzi = [n]
mianzi_biaoji = [0]
j = 0
while 0 in mianzi_biaoji:
for i in range(mianzi[j] - 1, 0, -1):
k = mianzi[j] / i
if int(k) == k:
if not (i in mianzi):
mianzi.append(i)
mianzi_biaoji.append(0)
break
mianzi_biaoji[j] = 1
j = j + 1

result = len(mianzi)
print("试题2:最高面值", n, "所有面值:", mianzi, '数量:', result)
return result


def s3(str):
"""
字母字符串输入规则碰到元音就反转,
如:输入cbe 就会得到目标ebc.
按此规则,求为获取一个目标字串的输入方法的个数
:param str:
:return:
"""
a = 'aoeiu'
lst = []

def s(ss='', path=''):
if len(ss) < len(str):
for c in str:
t = ss + c
pp = path + c
if c in a:
ls = list(t)
ls.reverse()
t = ''.join(ls)
if t == str:
# print('目标:', str, '输入方法:', ss, c, pp)
if not (pp in lst):
lst.append(pp)
else:
s(t, pp)

s()
print('试题3:目标字串:', str, "输入方法:", lst, "数量:", len(lst))
return len(lst)


def s4(n, k):
"""

:param n:
:param k:
:return:
"""

def do_free(job, x):
for t in range(2, 10 + 1):
job = job - x / (k ** (t - 1))
if job <= 0:
return True
return False

for x in range(0, n):
job = n - x
if do_free(job, x):
print("试题4:n=%s,k=%s, 第一天要完成:%s" % (n, k, x))
return x


s1(100)
s2(100)
s3('aciduf')

# 这一题好像这个示例是得到 54 我这个是53,感觉还是题目有什么隐含的题意,没搞清楚。
s4(59, 9)


输出:
-------------------
试题1:因子个数为 100 的最小整数是:45360 [45360, 1, 22680, 2, 15120, 3, 11340, 4, 9072, 5, 7560, 6, 6480, 7, 5670, 8, 5040, 9, 4536, 10, 3780, 12, 3240, 14, 3024, 15, 2835, 16, 2520, 18, 2268, 20, 2160, 21, 1890, 24, 1680, 27, 1620, 28, 1512, 30, 1296, 35, 1260, 36, 1134, 40, 1080, 42, 1008, 45, 945, 48, 840, 54, 810, 56, 756, 60, 720, 63, 648, 70, 630, 72, 567, 80, 560, 81, 540, 84, 504, 90, 432, 105, 420, 108, 405, 112, 378, 120, 360, 126, 336, 135, 324, 140, 315, 144, 280, 162, 270, 168, 252, 180, 240, 189, 216, 210]
试题2:最高面值 100 所有面值: [100, 50, 25, 5, 1] 数量: 5
试题3:目标字串: aciduf 输入方法: ['iducaf', 'diucaf'] 数量: 2
试题4:n=59,k=9, 第一天要完成:53

标签:尝试,return,mianzi,编程,lst,result,str,挑战赛,输入
From: https://blog.51cto.com/fangkailove/5881792

相关文章

  • python 编程技巧
     元组命名如何为元组中的每个元素命名,提高程序可读性案例:学生信息系统中数据为固定格式:(名字,年龄,性别,邮箱地址,......)学生数量很大为了减小存储开销,对每个学生信息用元......
  • 真的,Java并发编程入门看这个就够了
    Java并发编程学习之02Java并发编程入门指南(真的,Java并发编程入门看这个就够了)1.Java天生多线程importjava.lang.management.ManagementFactory;importjava.lang......
  • 真的,Java并发编程基础入门看这个就够了
    Java并发编程学习之02Java并发编程入门指南@目录1.Java天生多线程2.Java启动多线程实现方式2.1实现代码2.2Thread和Runnable的区别2.3start和run方法的区别3.Java......
  • 2022 云原生编程挑战赛圆满收官,见证冠军战队的诞生
    11月3日,天池大赛·第三届云原生编程挑战赛在杭州云栖大会圆满收官。三大赛道18大战队手历经3个月激烈的角逐,终于交上了满意的答卷,同时也捧回了属于他们的荣耀奖杯。......
  • 一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》
    学习目标了解FFmpeg学习FFmpeg工具的下载及环境配置了解FFmpeg工具的使用方式了解FFmpegplay的使用方法了解FFmpegpaly的音量设置、窗口设置、音量设置等......
  • java web开发(aop编程)
        刚开始看到aop的时候,了解到它是面向切片,觉得还是挺拗口的。不知道应该怎么去理解怎么这么一个概念。后来想了一想,不如先看范例,直接从实例去理解aop或许更容易一......
  • python编程(改进的线程同步方式)
      在实际代码开发中,gui的代码并不好写。因为不管是mvc、还是mvp都有一定的局限性。那么,这个时候,我就在想,是不是可以用mvp+reactor的方法进行gui的改进操作呢?首先app编写......
  • 多线程的那点儿事(之多核编程)
      多核编程并不是最近才兴起的新鲜事物。早在intel发布双核cpu之前,多核编程已经在业内存在了,只不过那时候是多处理器编程而已。为了实现多核编程,人们开发实现了几种多......
  • python编程(orm原理和实践)
    就给出自己对orm的理解。之前廖雪峰给出的code,大家可以通过​​地址​​下载的到。1、orm的使用方法    一般我们使用orm都是这么写代码的,classUser(Model):id=I......
  • python编程(gevent入门)
        大家都知道python脚本执行的时候不是很快,特别是python下面的多线程机制,长久以来一直被大家所诟病。所以,很多同学都在思考python下面有没有什么方法可以让python执行......