python算法学习——第3天

1、统计单词的个数

在这里插入图片描述

简单

s = input().split()
print("count = {}".format(len(s)))

2、将秒数转换成时分秒

在这里插入图片描述

要点
divmod() 函数https://www.runoob.com/python3/python3-func-divmod.html

seconds = int(input())
m,s = divmod(seconds,60)
h,m = divmod(m,60)
print("%d:%d:%d"%(h,m,s))

3、复数的运算与最值

本题目要求读入4个整数a,b,c,d,根据这4个整数构造两个复数:a+bi和c+di,然后输出它们,并输出它们的和,差,积,商以及上述结果中的最大者(实,虚部运算时均在整数范围内进行运算)。 两个复数大小的比较约定为:先比实部(实部大或小即认为整个复数大或小),实部相同时,比较虚部的大小,若虚部也相同,认为两个复数相等。 还需要注意复数的输出习惯:如:0+0i–>{0}, 0-8i–>{-8i},-3+0i–>{-3},3±4i–>{3-4i}
在这里插入图片描述
这个题主要考查了python对于复数的基本操作,包括输入四则运算虚实部的获取等等,难点在于格式化的输出和复数虚实部为0的情况

n = input().split()
z1 = eval(n[0] + '+' + n[1] + 'j')
z2 = eval(n[2] + '+' + n[3] + 'j')

add = z1 + z2
sub = z1 - z2
mul = z1 * z2
div = z1 / z2
q = [add,sub,mul,div]
ls=sorted(q,key=lambda x:(x.real,-x.imag),reverse=True)

lsl=[z1,z2,add,sub,mul,div,ls[0]]
for c in lsl:
    if int(c.real)==0:
        if int(c.imag)==0:
            print("{0}")
        else:
            print("{",end='')
            print("{:.0f}i".format(c.imag),end='')
    else:
        if int(c.imag)==0:
            print("{",end='')
            print("{:.0f}".format(c.real),end='')
            print("}")
        elif int(c.imag)>0:
            print("{",end='')
            print("{:.0f}+{:.0f}i".format(c.real,c.imag),end='')
            print("}")
        else:
            print("{",end='')
            print("{:.0f}{:.0f}i".format(c.real,c.imag),end='')
            print("}")
# q = [1+2j,1-1j,2+1j,3-5j,3-4j]
# ls=sorted(q,key=lambda x:(x.real,-x.imag),reverse=True)
# print(ls)

4、 干掉CPA会长

每年的国庆,我们的CPA协会都会举办程序设计培训,主要是为了给热爱代码的同胞们提供一个平台。今年的疫情格外的激烈,但依然没有阻挡我们热爱代码的激情。国庆期间因为整天的敲代码,让我们头昏眼花,为了丰富我们的代码生活,我们的会长发明了一个游戏。(输了要请客吃饭)。 游戏只有2个人,每个人都有幸运值,一开始会长的幸运值为0,你的值为1。(因为会长是老大,所以让着我)。开始以后,由会长先开始,会长使用一招乾坤大挪移,此时 你的幸运值会加持到会长的幸运值上,会长的幸运值会立即更新。(会长的幸运值会累加上你的值),当然你也不甘示弱,到你的时候,你顺手一招移花接木,会长的幸运值被你掠夺过来。你的幸运值也会更新(你的幸运值会累加上会长的值)。 当其中一个人的值大于等于给定的一个值,谁就获胜。要求输出胜利一方的姓名和幸运值。(会长的名字默认为"Jiangcheng" )
在这里插入图片描述
在这里插入图片描述
要点:两个数不断求和,当某一数大于等于目标值时break 。

name,luckpointtarget = input().split()
luckpointtarget = int(luckpointtarget)
huizhangpoints = 0
yourspoints = 1
while huizhangpoints<luckpointtarget and yourspoints<luckpointtarget:
    huizhangpoints += yourspoints
    yourspoints += huizhangpoints
if huizhangpoints>=luckpointtarget:
    print("jiangcheng")
    print(huizhangpoints)
else:
    print(name)
    print(yourspoints)

猜你喜欢

转载自blog.csdn.net/weixin_43624626/article/details/113532264