`
wzy1986714
  • 浏览: 11586 次
  • 性别: Icon_minigender_1
  • 来自: 温州
最近访客 更多访客>>
社区版块
存档分类
最新评论

小算法题--4

阅读更多
#在黑板上写了N个正整数组成的一个数列,进行如下操作: 每次擦去其中的两个数a和b,然后在数列中加入一个数a×b+1,
#如此下去直至黑板上 剩下一个数,在所有按这种操作方式最后得到的数中,最大的为max,最小的为min, 则该数列的极差定义为M=max-min。
#请你编程,对于给定的数列,计算极差。

# example: input 1 2 3 output 2

# 思路:每次取最大两个得到最小值,每次取最小两个得到最大值

a=[1,2,3]

def Max(a):
    a.sort()
    while len(a)>1:
        #print a
        a.append(a.pop(0)*a.pop(0)+1)
        a.sort()
    return a

def Min(a):
    a.sort()
    while len(a)>1:
        #print a
        a.append(a.pop(len(a)-1)*a.pop(len(a)-1)+1)
        a.sort()
    return a

print Max(a[:]),'\n',Min(a[:])
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics