python-趣味百题4
标签:maxrompythonand随机思路linapp平均值
1.赛场统分在编程竞赛中,有10个评委为参赛选手打分,分数为0-100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。思路:1).随机生成n个分数,放到列表s中2).找到最高分数和最低分数MaxScore,MinScore3).累加求和后减去最高分和最低分,除以n-2
import randomdef averageScore(n): s = [] for i in range(n): s.append(random.randint(0,100)) print s maxScore = 0 minScore = 100 sumScore = 0 for k in s: if maxScore < k: maxScore = k if minScore > k: minScore = k sumScore += k return float(sumScore – maxScore – minScore) / (n – 2)
print averageScore(10)
列表解析:def averageScore2(n): s = [random.randint(0,100) for i in range(n)] return float(sum(s) – max(s) – min(s)) / (n – 2)print averageScore2(10)
2.回文数
回文数:是一种数字,如98789,这个数字正着读倒读都是98789判断一个数是否是回文数思路:1).取出每一个位放入列表2).a[i] == a[-i-1],i范围0-len(a)/2def isPalindromeNum(n): a = [] while n > 0: a.append(n % 10) n /= 10 for i in range(len(a)/2): if a[i] != a[-i-1]: return False return True print isPalindromeNum(n)
3.埃及分数式
分子是1的分数,叫单位分数。古代埃及人在进行分数运算时,只使用分子是1的分数,因此这种分数也叫做埃及分数式或者叫单分子分数。要求随便输入一个真分数,将该分数分解为埃及分数式,如3/7=1/3+1/11+1/231思路:1).对于一个真分数a/b,找最接近的1/k2).如果a % b == 0 ,找到k = b/a3).如果a % b != 0 ,找到k = b/a+1
def fun(a,b): k = b / a if b % a == 0: res = ‘1/%s‘ % k else: k += 1 res = ‘1/%s + %s‘ % (k,fun(a * k – b,b * k)) return resprint fun(2,3)
python-趣味百题4
标签:maxrompythonand随机思路linapp平均值
原文地址:http://www.cnblogs.com/lucia8522/p/6808381.html