Python个人题解

嘛 拿了周赛第一 用python写的 所以来补一份python的题解

A题

原题链接:https://ac.nowcoder.com/acm/contest/119365/A

本题的题目非常友好,将判断逻辑写的很清楚

整题使用if-elif-else结构完成。

代码如下:

n = int(input())
'''
首先使用input获取输入的数据
用输入的数据定义变量n(也就是要判断的年数)
这里可以拆成两行:
n = input()
n = int(n)
'''
if n % 400 == 0:
    print("yes")
elif n % 4 == 0 and n % 100 != 0:
    print("yes")
else:
    print("no")  #这一段代码完全是翻译了题目描述,将是/不是闰年与输出yes或者no等价             

B题

原题链接:https://ac.nowcoder.com/acm/contest/119365/B

本题使用python的解法非常简单:

print("     **")
print("     **")
print("************")
print("************")
print("    *  *")
print("    *  *")

如果硬要说难点的话 大概是认清楚这个符号是* 以及数清楚空格的数量。

C题

原题链接:https://ac.nowcoder.com/acm/contest/119365/C

这题是签到题了。

a = int(input()) #邪修可以不写int(),反正没做运算orz
print(a)

不过多解释啦,考验最基本的输入输出的运用。

D题

原题链接:https://ac.nowcoder.com/acm/contest/119365/D

同样是签到题。

考点硬要说的话是.split()的运用 (如何分割同一行内的输入)

还是直接贴出来代码啦

a,b = map(int,input().split())
'''
这里map的作用是对a和b一起处理,如果不太能理解的可以将第一行换为以下三行:
a,b = input().split()
a = int(a)
b = int(b)
'''
print(a+b) #这里也可以定义其他变量为a+b,输出这个变量,随意就好

E题

原题链接:https://ac.nowcoder.com/acm/contest/119365/E

大概是重头戏了吧!

首先给不太熟悉代码的同学提供一个邪修的解决办法:

a = int(input())  #!!!看这里 注意 一定要加上int() 不然是过不去的!!!
                  #输入里有脏东西orz(比如+5.0)
if a == 1:
    print(1)
elif a == 2:
    print(3)
elif a == 3:
    print(9)
elif a == 4:
    print(33)
elif a == 5:
    print(153)
elif a == 6:
    print(873)
elif a == 7:
    print(5913)
elif a == 8:
    print(46233)
elif a == 9:
    print(409113)
else:
    print(4037913)

这是枚举法 依照数据大小以及计算量来看 枚举法的做法对于本题其实是可以接受的。

接下来大概就是大家都很感兴趣的算法问题了。

先贴代码再解释:

n = int(input())
a = 0
b = 1
for i in range(1,n+1):   #使用for循环进行遍历 从1到n 用n+1的意义是(1,n+1)的区间默认为左闭右开
    b *= i               #这里等价于b = b*i
    a += b               #这里等价于a = a+b
print(a)

是不是看完还一头雾水orz

这里来进行一个细致的讲解

首先理解一下for循环外的部分

a初始是0 是用来记录最终的和的

b初始是1 是逐个计算阶乘的

那么再来看里面

b = b*i 由于处于循环内 i会遍历每一个数 所以可以分别算出所有阶乘

a = a+b 将每一个阶乘都累加到变量a里

最后输出变量a

那么这题就完成啦

F题

原题链接 : https://ac.nowcoder.com/acm/contest/119365/F

主要考验审题和对转译符的运用

先贴代码:

print("printf(\"Hello, world!\\n\");")

具体到本题的话 是在引号和反斜杠前使用转译符

审题清晰的话还是不难的!

那么这期周赛的Python题解就到这里啦

谢谢您愿意看到这里orz

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务