刚学python,有问题想请教一下大家

刚学python 想请教一下这方面的专业人士这两道题该怎么编 害真的不会 不懂咋下手

img

n = int(input())
S = 0
for i in range(1,n+1):
  S += (n-i+1)**i
print(S)
n = int(input())

Hailstone = [n]

while n!=1:
  if n%2==1:
    Hailstone.append(3*n+1)
  else:
    Hailstone.append(n//2)
  n = Hailstone[-1]

print(Hailstone)


#Hailstone序列

def haistone(n):
    hai_list = []
    while n > 1:
        hai_list.append(n)
        if n%2: #奇数
            n = 3*n + 1         
        else:  #偶数
            n = n//2
    else:
        hai_list.append(1)
    return hai_list

试下:

res = hailstone(42)
print(res)

#[42, 21, 64, 32, 16, 8, 4, 2, 1]