python

例1:题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

sum=0

for i in range(1,5):

for j in range(1,5):

for k in range(1,5):

if i!=j and j!=k and i!=k:

print(i,j,k)

sum+=1

print("共",sum,"种")

思考与分析:for的嵌套循环使用,看一遍,仿写一遍之后,自己就可以手写了。

例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,求应发放奖金总数?

# coding=utf-8

i=int(input("输入你的净利润:"))

a=[100,60,40,20,10,0]

b=[0.01,0.015,0.03,0.05,0.075,0.1]

r=0

for c in range(0,6):

if i>a[c]:

r+=(i-a[c])*b[c]

print('区间提成:',(i-a[c])*b[c])

i=a[c]

print("您的总提成为",r,"万元")

例3:

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

程序分析:

假设该数为 x。

1、则:x + 100 = n2, x + 100 + 168 = m2

2、计算等式:m2- n2= (m + n)(m - n) = 168

3、设置: m + n = i,m - n = j,i * j =168,i 和 j 至少一个是偶数

4、可得: m = (i + j) / 2, n = (i - j) / 2,i 和 j 要么都是偶数,要么都是奇数。

5、从 3 和 4 推导可知道,i 与 j 均是大于等于 2 的偶数。

6、由于 i * j = 168, j>=2,则1 < i < 168 / 2 + 1。

for i in range(1,85):

if 168%i==0:

j=168/i

if i>j and (i+j)%2==0:#有的地方会把(i-j)%2==0写上,是可以省略的。

n=(i-j)/2

x=n*n-100

print(x)

思考与分析:这里就用到了数学思维,需要去分析怎样求解并求得最优解,当然也可以思考把代码更简单化。

例4:输入某月某日,判断这一天是一年的第几天?

分析过程:

将小于当月的月份日期累加再加上当月的日期即可得到结果。

思路:一种方法是写一个字典,通过字典来获取每个月的天数。

dic = {1:31,2:28,3:31,4:30,5:31,6:30,7:31,8:31,9:30,10:31,11:30,12:31}#用字典的方式来对应月份和天数最合适不过了,不用考虑位置的问题。

x = int(input('请输入月份:',))

y = int(input('请输入日期:',))

r=0

if x in range(1,13) and y in range(1,dic[x]):

for i in range(1, 13):

if i

你可能感兴趣的:(python)