1.有四个数字,1,2,3,4能够组成多少个互不相同且无重复数字的三位数,各是多少
total=0
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if (i!=j)&(j!=k)&(k!=i):
print(i,j,k)
total=total+1
print('不重复的三位数总共有:',total)
2.企业发放的奖⾦根据利润提成。利润(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,求应发放奖⾦总数?
①,用一个level一个level地计算profit
I=int(input('请输入当月利润:'))
if I<=100000:
profit=I*0.1
if 100000<I<=200000:
profit=100000*0.1+(I-100000)*0.075
if 200000<I<=400000:
profit=100000*0.1+100000*0.075+(I-200000)*0.05
if 400000<I<=600000:
profit = 100000 * 0.1 + 100000 * 0.075 + 200000*0.05+(I-400000)*0.03
if 600000<I<=1000000:
profit= 100000 * 0.1 + 100000 * 0.075 + 200000*0.05+200000*0.03+(I-600000)*0.015
if 100000<I:
profit = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + \
400000 * 0.015+(I-1000000)*0.01
print('奖金为:',profit)
②,用for循环简化流程
profit=int(input('请输入当月利润:'))
level=[100000,100000,200000,200000,400000]
rate=[0.1,0.075,0.05,0.03,0.015,0.01]
bonus=0
for i in range(len(level)):
if profit<=level[i]:
bonus+=profit*rate[i]
profit=0
break
else:
bonus+=level[i]*rate[i]
profit-=level[i]
bonus+=profit*rate[-1] #对于<=100万时,这一步应该是不能发生的,因此在break前加一步profit=0的操作
print(bonus)
3.⼀个整数,它加上100后是⼀个完全平⽅数,再加上168⼜是⼀个完全平⽅数,请问该数是多少?
#第一步要找到循环的上限,即两个相邻的完全平方数之差大于168时显然应该结束了
n=0
while (n+1)**2-n**2<=168:
n+=1
print(n+1)
#结果显示在n=85时结束,86^2-85^2>168
#完整过程
n=0
while (n+1)**2-n**2<=168:
n+=1
for i in range(n**2):
if (i**0.5)%1==False and ((i+168)**0.5)%1==False :
print(i-100)
(一开始对i做了i>100的限制,实际上是不需要的,整数包括负数)