读书人

小算法题-四

发布时间: 2012-09-23 10:28:11 作者: rapoo

小算法题--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 adef 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 aprint Max(a[:]),'\n',Min(a[:])

读书人网 >编程

热点推荐