今天看书遇到的三个练习题,在这里记录一下下吖
第一个题目,有4个数字:1、2、3、4,它们能组成多少个互不相同且无重复数字的3位数?各是多少?
我们直接先列个数组,然后嵌套三个for循环使用数组中的数,然后将每个提取出来的数进行比较,三个互不相同的数就是我们需要的数啦,然后把他们加出来就好了!!!
i = [1,2,3,4]
num = 0
for a in i:
for b in i:
for c in i:
if(a != b and b != c and c != a):
sum = 0
sum = a*100 + b * 10 + c
print(sum)
num += 1
print("一共%d种组合方法" %num)
我这里运行程序,然后一共是24中组合:
接下来我们来说第二道题,企业发放的奖金根据利润来确定提成比例。当利润(I)低于或等于10万元时,奖金可提成10%;当利润高于10万元但低于20万元时,低于10万元的部分按10%提成,高于10万元的部分可提成7.5%提成;当利润在20万元到40万元之间时,高于20万元的部分可提成5%;当利润在40万元到60万元之间时,高于40万元的部分可提成3%;当利润在60万元到100万元之间时,高于60万元的部分可提成1.5%;当利润高于100万元时,超过100万元的部分可按1%提成。从键盘输入当月利润I,求应发放奖金总数。
这个就更简单啦,直接一个if判断搞定,就是代码量有点大感觉,不知道有没有更好的方法希望指教一下,我这里就直接上我的代码了:
l = float(input("请输入当月利润,单位是万元哦!!!:"))
if(l>0 and l<=10):
bonus = l*0.1
elif(l>10 and l<=20):
bonus = 10*0.1 + (l-10)*0.075
elif(l>20 and l<=40):
bonus = 10*0.1 + 10*0.075 +(l-20)*0.05
elif(l>40 and l<= 60):
bonus = 10*0.1 + 10*0.075 + 20*0.05 + (l-40)*0.03
elif(l>60 and l<=100):
bonus = 10*0.1 + 10*0.075 + 20*0.05 + 20*0.03 + (l-60)*0.015
elif(l>100):
bonus = 10*0.1 + 10*0.075 + 20*0.05 + 20*0.03 + 40*0.015 + (l-100)*0.01
else:
print("输入错误,请重新输入!!!")
if (l>0):
print("当月利润为%f万元,应发奖金%f万元"%(l,bonus))
这是我运行程序的结果:
很轻松就能看明白吧!!!
接下来最后一道题,一个整数加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
首先这道题就是要搞清楚完全平方数的概念,我们来看看百度百科的解释吧:
也就是说1,4,9这样的数字就是完全平方数嘛,然后我们这里就要用到python的math模块了,因为我们要用到这个库的sqrt函数,这个函数是返回当前数的平方根,假如是9就返回3,这是能够正常平方根的,如果不能,就要看计算机计算出来什么数了,不能正常平方根的计算出来就是小数。
还有这里需要注意的是,根号下的数要大于等于0,我们这里最小加100,所以我们的那个未知数需要大于等于-100,所以我这里遍历的是-100到10000(注意:这里是不包括10000的哦)
搞清楚这些了,然后就把计算出来的数进行对比就好了,两个条件都能满足的就是我们需要的数啦!!!
import math
for i in range(-100,10000):
l = math.sqrt(i+100)
h = math.sqrt(i+100+168)
if(l == int(l) and h == int(h)):
print(i)
这是我运行的结果:
好了,今天的记录就到这里把,晚安,玛卡巴卡!!!