Python Tip(46~50)题详解

来源:互联网 发布:mysql 创建时间 编辑:程序博客网 时间:2024/05/26 07:29

题目46.取石子游戏

描述:有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,
一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。
现在给出初始的两堆石子的数目a和b,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。
如果你是胜者,输出Win,否则输出Loose。
例如,a=3,b=1, 则输出Win(你先在a中取一个,此时a=2,b=1,此时无论对方怎么取,你都能将所有石子都拿走).

答案

import mathp = (math.sqrt(float(5))+1)/float(2)c = abs(a-b)if a > b:    a = bif a == int(p*c):    print "Loose"else: print "Win"

题目47.杨辉三角

描述:还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形:

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

…………..

先在给你一个正整数n,请你输出杨辉三角的前n层

注意:层数从1开始计数,每层数字之间用一个空格隔开,行尾不要有空格。
如n=2,则输出:

1

1 1

答案:

trangle = [['1'],['1','1']]def print_trangle(n):    for i in range(n):        print ' '.join(trangle[i])   for i in range(3,n+1):    tmp=['1']    newRow= trangle[i-2]    for j in range(len(newRow)-1):        tmp.append(str(int(newRow[j])+int(newRow[j+1])))    tmp.append('1')    trangle.append(tmp)print_trangle(n)

题目48.砝码问题II

描述:有一组砝码,重量互不相等,分别为m1、m2、m3……mn;每种砝码的数量有无限个。
现要用这些砝码去称物体的重量,给你一个重量n,请你判断有给定的砝码能否称出重量n。
现在给你一个正整数列表w和一个正整数n,列表w中的第i个元素w[i]表示第i种砝码的重量,
n表示要你判断的重量。如果给定砝码能称出重量n,输出Yes,否则输出No。
例如,w=[2,5,11], n=9,则输出Yes(取两个2,一个5)。

答案

def solve():     num=[]    for i in range(len(w)):        num.append(n/w[i])        m = set()        for i in range(num[0]+1):            m.add(w[0]*i)    for i in range(1,len(num)):        tmp = m.copy()        m.clear()        for j in range(num[i]+1):            for k in tmp:                if w[i]*j+k < n:                    m.add(w[i]*j+k)                elif w[i]*j+k == n:                    return "Yes"    return "No"print solve()

题目49.进制转换

描述:给你一个十进制数a,将它转换成b进制数,如果b>10,用大写字母表示(10用A表示,等等)
a为32位整数,2 <= b <= 16
如a=3,b = 2, 则输出11

答案:不要忘记a为负数的情况。

base = ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F')def transfer(a,b):    res = []    aa = abs(a)    while aa:        res.append(base[aa%b])        aa/=b    if a<0:        res.append('-')            return ''.join(res[::-1])print transfer(a,b)

题目50.Py扔铅球

**描述:**Py不但是编程大牛,而且是运动健将。比如说扔铅球,1000m,现在Py参加校园扔铅球比赛,
给你Py的身高a(双精度数),球落地点与Py头部的连线与水平线的夹角 b(弧度),
要你编写一个程序计算Py扔铅球的水平距离。
a,b都是浮点数,注意b是弧度,其中, 140 < a < 200, 0 < b < 1.5.
输出你求出的水平距离,保留到小数点后三位。
如,a = 165.5, b=1.1, 则输出84.234

答案:

import mathprint "%.3f" % (a/math.tan(b))
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 qq密码记不着了怎么办 退货填错地址怎么办 淘宝店主出门发货怎么办 化妆品囤货太多怎么办 查分网页崩溃怎么办 记事本回车键不能换行怎么办 网页xml 载入失效怎么办 网页没有搜索栏怎么办 咖喱调料打开了怎么办 煮咖喱水放多了怎么办 营业执照4年没用怎么办 刷赞网站打不开怎么办 网页界面变大了怎么办 照片在易企秀放不完整怎么办 易企秀审核未通过怎么办 微信文件过期怎么办 商家一直不退款怎么办 商家不退运费怎么办 电源标签没了怎么办 淘宝退货的邮费怎么办 淘宝店铺未授权怎么办 商家收款不发货怎么办 厂家收款不发货怎么办 微信支付没到账怎么办 二维码被涂了怎么办 手机老是卡顿怎么办 买完东西降价怎么办 买家不补邮费怎么办 win10网络初始化失败怎么办 win10电脑初始化失败怎么办 获取ip地址失败怎么办 oppor11开不了机怎么办 拼多多商家发错货怎么办 刷好评兼职骗怎么办 公司不想经营了怎么办 外地开公司手续怎么办 淘宝周平均值5.8怎么办 店铺宝贝降权怎么办 淘宝链接被屏蔽怎么办 闲鱼宝贝被降权怎么办 淘宝店没有订单怎么办