1.有1,2,3,4个数字,能组成多少个互不相同且不重复的三位数?都是多少
答:
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if (i!=j) and (i!=k) and (j!=k):
print(i,j,k)
2. 企业发放奖金根据利润提成,利润l低于等于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%,输入月利润l,求发放奖金总数
答:
l=int(input("请输入利润:"))
s=0
a=0
b=0
if l<=100000:
s=l+l*0.1
elif l<=200000:
a=(l-100000)*0.75
b=100000*0.1
s=a+l+a+b
elif l<=400000:
a=(l-200000)*0.5
s=l+a
elif l<=600000:
a=(l-400000)*0.3
s=l+a
elif l<=1000000:
a=(1-600000)*1.5
s=l+a
elif l>1000000:
a=(l-1000000)*1
s=l+a
print(s)
3.一个整数,加上100后是一个完全平方数,加上268也是一个完全平方数,请问该数是多少?
答:
import math
i=1
while i<=100000:
x=int(math.sqrt(i+100))
y=int(math.sqrt(i+268))
if x*x==(i+100) and y*y==(i+268):
print(i)
i+=1
4.输入一个日期,判断这一天是这一年的第多少天?
答:
x=int(input("year"))
y=int(input("month"))
z=int(input("day"))
s=0
if x%4==0 and x%100!=0 or x%400==0:
if x>2:
s+=1
y1=[1,3,5,7,8,10,12]
for i in range(1,y):
if i in y1:
s=s+31
elif i==2:
s=s+28
else:
s=s+30
s=s+z
print(s)
5.利用条件运算符完成;学习成绩>=90分的同学用A表示,60-89分之间的同学用B表示,60分以下的同学用C表示
答:
s=int(input("请输入学习成绩:"))
if s>=90:
print("A")
elif s>=60:
print("B")
elif s<60:
print("C")
6.求s=a+aa+aaa+aaaa+aaaaa+aa…a的值,其中a是数字.
答:
x=input("由几个数相加?:") #比如由5个数相加 即为:*+**+***+****+*****
y=input("打印什么数?:") #比如这个数为2 即为:2+22+222+2222+22222
s=''
s1=0
for i in range(int(x)):
s=s+y
s1=s1+int(s)
print(s1)
7.一个球从100米高空落下,每次落地后反跳回原来高度的一半;再落下,求它在第十次落地时,共经过多少米?第十次反弹多高?
答:
height=100 #最开始高度为100
s=100 #s=100为第一次下降的米数
for i in range (9): #因为前面把第一次的100米加上了,所以这里只循环9次
height=height/2 #循环9次,分别求出每次弹起的高度
s=s+height*2 #由于弹起还需要下落,所以height需要乘2,加上之前第一次的100米的距离,正好是10次的总距离.
print("第十次落地时,共经过了%f米,第十次反弹了%f米" %(s,height/2)) #由于只循环9次,所以再除以一次2,得出第十次反弹的高度.
8.一个学校,有3个办公室,现在有8位老师等待工位的分配,请编写程序,完成随机的分配
答:
import random
offices=[[],[],[]]
teachers=['A','B','C','D','E','F','G','H']
for i in teachers:
a=random.randint(0,2)
offices[a].append(i)
k=0
for j in offices:
print("办公室{0}中{1}人,分别是:{2}".format(k,len(j),j))
k=k+1
9.有一序列,2/1,3/2,5/3,8/5,13/8,21/13…求这个数列前20项和
答:
a=1.0
b=2.0
sum=0.0
for i in range(20):
sum=sum+b/a
s=a+b
a=b
b=s
print(sum)
10.求1!+2!+3!..+20!的和
答:
def Jiecheng(m):
p=1
for i in range(1,m):
p=p*i
return p
s=0
for j in range(1,21):
s=s+Jiecheng(j)
print(s)
11.使用递归方法求阶乘
答:
def Jiecheng(m):
if m==1:
return 1
else:
return m*Jiecheng(m-1)
for i in range(1,6):
print("{0}!={1}".format(i,Jiecheng(i)))
12.使用递归函数方式实现输入一个字符串将其倒序输出
答:
def string(n):
if len(n)<=1:
return n
else:
return n[-1]+string(n[:-1])
x=input("请输入一个字符串:")
print(string(x))
13.五个人坐在一起,问第五个人多少岁?他说比第四个人大两岁,问第四个人他说比第三个人大两岁。。。第一个人10岁。求这第五个人多大了?
答:
def age(n):
if n==1:
s=10
else:
s=age(n-1)+2
return s
print(age(5))
14.给一个不多于5位的正整数,要求:一、求它是几位数 二、逆序打印出个位数字
答:
x=input("请输入一个不超过5位的正整数:")
count=len(x)
e=int(x)%10 #5
d=int(x)%100//10 #4
c=int(x)%1000//100 #3
b=int(x)//1000%10 #2
a=int(x)//10000 #1
if a!=0:
print("这个数是5位数",e,d,c,b,a)
elif b!=0:
print("这个数是4位数",e,d,c,b)
elif c!=0:
print("这个数是3位数",e,d,c)
elif d!=0:
print("这个数是2位数",e,d)
elif e!=0:
print("这个数是1位数",e)
else:
print("输入错误")
15.求一个3*3矩阵对角线元素之和
答:
a=[
[1,2,3],
[4,5,6],
[7,8,9]
]
s=0
for i in range(3):
for j in range(3):
if i==j:
s+=a[i][j]
print(s)
16.有一个已经排好的序列,现在输入一个数,要求按照原来的规律将其插入数列。
答:
s=[1,2,3,5,10]
x=int(input("请输入一个数:"))
if x>=s[len(s)-1]:
s.append(x)
else:
for i in range(len(s)):
if x<=s[i]:
s.insert(i,x)
break
print(s)