1.题目:1,2,3,4四个数字能组成多少个互不相同且无重复数字的三位数?各个数字又是多少?
#/usr/bin/python
# -*- coding: UTF-8 -*-
n=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
n += 1
print ("共能组成%d个互不相同无重复数字的三位数"%n)
思路:先输出能组成的所有的三位数,然后去除不符合条件的。
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,求应发放奖金总数?
#!/usr/bin/python
# -*- coding: UTF-8 -*-
i = int(raw_input('净利润:'))
arr = [1000000,600000,400000,200000,100000,0]
rat = [0.01,0.015,0.03,0.05,0.075,0.1]
r = 0
for idx in range(0,6):
if i>arr[idx]:
r+=(i-arr[idx])*rat[idx]
#print (i-arr[idx])*rat[idx]
i=arr[idx]
print r
思路:1.可以使用if-else语法进行分类计算。
2.再者就是使用分段的方法,然后使用循环来求结果。
3.题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
#/usr/bin/python
for i in range(1,85):
if (168%i)==0:##i和j皆为整数
j=168/i
if (i+j)%2==0 and (i-j)%2==0 and i>j:
m=(i+j)/2
n=(i-j)/2
x=n*n-100
print x
思路:1.x+100=nn,x+268=mm
2.mm-nn=168=>(m+n)(m-n)=168(m+n和m-n至少有一个偶数)
3.i=m+n,j=m-n=>m=(i+j)/2,n=(i-j)/2
由2,3得i*j=168且m和n皆为大于等于2的偶数
4.题目:输入某年某月某日,判断这一天是这一年的第几天?
mouth_list=[1,2,3,4,5,6,7,8,9,10,11,12]##月份
day_list=[31,28,31,30,31,30,31,31,30,31,30,31]##月份对应的天数,2月为平年
year=int(input("input year:"))
mouth=int(input("input mouth:"))
day=int(input("input day:"))
i=1
total=0##计数天数
while mouth > mouth_list[i-1]:##计算整月份的天数
total += day_list[i-1]
i += 1
total += day##加上下个不是整月的天数
leap = 0
if(year%400==0) or (year%4==0 and year%100!=0):##判断年份是否为闰年
leap = 1
if leap == 1 and mouth > 2:
total += 1
print total
思路:将月份和每月的天数进行对应,然后根据月份计算整月的天数,例如输入的日期为2000年4月3日,则先将1-3月份的日期进行计算,然后加上四月份多余的三天,最后判断年份是否为闰年并且月份是否超过2来判断是否要加1天。
5.题目:输入三个整数x,y,z,请把这三个数由小到大输出。
#!/usr/bin/python
l = []
for i in range(3):
x = int(input('integer:\n'))##输入三个整数
l.append(x)
l.sort()##使用sort函数直接排序
print l