“”""
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 j!=k and k!=i:
print(i,j,k)
2.利润<=10万,奖金可提10%;20万>利润>=10万,低于10万的部分按10%提成,高于10万按7.5%;
40万>利润>=20万,高于20万按5%;60万>利润>=40万,40万的部分按3%提成;
60万到100万之间,高于60万的部分,提成1.5%;高于100万时,超过100万的部分按1%
从键盘输入利润,求奖金
b1 = 100.1
b2 = b1 + 100.075
b3 = b2 + 200.05
b4 = b3 + 200.03
b5 = b4 + 40 * 0.015
b6 = b5 + 1000.01
i = int(input(‘请输入利润’))
if i<=10:
bou = i0.1
elif i<20:
bou = b1+(i-10)*0.075
elif i<40:
bou = b2+(i-20)*0.05
elif i<60:
bou = b3+(i-40)*0.03
elif i<100:
bou = b4+(i-60)*0.015
else:
bou = b5+(i-100)*0.01
print(‘奖金总数:’,bou)
3.一个整数,它加上100加上和268都后是一个完全平方数,请问该数是多少?
for i in range(100000):
if (i+100)**0.5int((i+100)**0.5) and (i+268)**0.5int((i+268)**0.5):
print(i)
4.要求输入某年某月某日,求判断输入日期是当年中的第几天?
year = int(input(‘年:’))
mouth = int(input(‘月:’))
day = int(input(‘日:’))
mouths=[0,31,59,90,120,151,181,212,243,273,304,334]
if 0<mouth<=12:
sum = mouths[mouth-1]
else:
print(‘请正确输入’)
sum+=day
leap = 0
if year%4000 or year%40 and year%100!=0:
leap = 1
if leap==1 and mouth>2:
sum+=1
print(sum)
5.任意三个整数类型,x、y、z,要求把这三个数,按照由小到大的顺序输出
lis = []
for i in range(3):
n = int(input(‘请输入数’))
lis.append(n)
lis = sorted(lis)
print(lis)
6.斐波那契数列
def fibo(param):
a,b=1,1
for i in range(param):
a,b=b,a+b
print(‘ab’,a,b)
print(a)
fibo(5)
7.九九乘法表
for i in range(1,10):
print(’’)
for j in range(1,10):
print(’{0}{1}={2}’.format(i,j,ij),end=’\t’)
8.时间格式化
import time,datetime
t = time.gmtime()
print(time.strftime("%Y-%m-%d %H:%M:%S",t))
9.一对可爱的兔子,出生后的第三个月开始,每一月都会生一对小兔子。当小兔子长到第三个月后,也会每个月再生一对小小兔子.假设兔子都不死的情况下,问每个月的兔子总数为多少?
a=int(input(‘请输入第几月:’))
m=1
n=1
l=[1,1]
if a1:
print(2)
if a2:
print(2)
if a>2:
for i in range(1,a):
m,n=n,m+n
l.append(m)
print(‘列表’,l)
print(‘mn’,m,n)
print(l[-1]*2)
10.冒泡排序
l=[22,3,1,56,5,8,212,98]
for i in range(len(l)):
for j in range(i+1,len(l)):
if l[i]>l[j]:
k=l[j]
l[j]=l[i]
l[i]=k
print(l)
11.素数统计:素数是不能被1和本身之外的数整除的数
h = 0
leap = 1
from math import sqrt
from sys import stdout
for m in range(101,200):
k = int(sqrt(m +1))
for i in range(2,k+1):
if m%i == 0:
leap=0
break
if leap == 1:
print(’%-4d’ % m)
h += 1
if h % 10 == 0:
# print(’’)
pass
leap = 1
print(h)
12.水仙花数:水仙花数是指一个 n 位正整数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身
for n in range(100,1000):
i = n//100
j = n//10%10
k = n%10
if i3+j3+k**3==n:
print(n)
13.分解质因数
def reduce_num(n):
while n not in [1]:#无限循环包装递归
for index in range(2,int(n+1)):
if n%index0:
n/=index#n等于n/index
if n1:
print(index)
else: #index一定是素数
print(’{} *’.format(index),end=’’)
break#关注break的位置
reduce_num(40)
14.a+aa+aaa+a…
a=input(‘请输入a的值:’)
n=int(input(‘请输入最大a的位数:’))
lis = []
lis_0 = []
for i in range(1,n+1):
print(a,i,ai)
lis.append(ai)
print(lis)
for j in l:
l0.append(int(j))
print(sum(l0))
15.完数计算
from sys import stdout
for j in range(2,10000001):
k=[]
s=j
for i in range(1,j):
if j%i0:
s-=i
k.append(i)
if s0:
print(j)
print(k)
17.皮球下落速度
q=100
l=50
for i in range(2,11):
q/=2
l+=2*q
print(l)
print(q)
18.猴子吃桃子
一只小猴子第一天摘下若干个桃子,并吃了一半。感觉到吃的还不瘾,于是又多吃了一个;第二天早上,又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上,都吃了前一天剩下的一半零一个。请问,到了第10天早上想再吃时,却发现只剩下一个桃子了。求第一天共摘了多少?
n=1 #吃完后某天桃子数为n
for i in range(1,10):
m=(n+1)*2 #逆向计算,桃子总数计算式
n=m #斐波那契数列的意思,替换
print(m)
19.比赛顺序排列
已知有两支乒乓球队要进行比赛,每队各出三人;甲队为a,b,c三人,乙队为x,y,z三人;已抽签决定比赛名单。
有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
a,b,c=ord(‘x’),ord(‘y’),ord(‘z’)
l=[]
for x in [ord(‘x’),ord(‘y’),ord(‘z’)]:
for y in [ord(‘x’),ord(‘y’),ord(‘z’)]:
for z in [ord(‘x’),ord(‘y’),ord(‘z’)]:
if a!=x and c!=x and c!=z and x!=y and x!=z and y!=z:
l.append(x)
l.append(y)
l.append(z)
print(l)
i=chr(l[0])
j=chr(l[1])
k=chr(l[2])
print(‘a–%s,b–%s,c–%s’%(i,j,k))
print(‘a–{0},b–{1},c–{2}’.format(i,j,k))
20.打印菱形图案
from sys import stdout
for i in range(4):
for j in range(2-i+1):
stdout.write(’ ‘)
for k in range(2i+1):
stdout.write(’’)
print()
for i in range(3):
for j in range(i+1):
stdout.write(’ ‘)
for k in range(4-2i+1):
stdout.write(’’)
print()
21.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,要求:求出这个数列的前20项之和。
def fibo(n):#统计前n个分数的值
a=2
b=1
l=[2/1]
for i in range(n-1):
a,b=a+b,a
l.append(a/b)
return sum(l)
f=fibo(20)
print(f)
22.阶乘的运算
s=1
n=1
t=[]
for i in range(20):
s*=n
n+=1
t.append(s)#导入的每次迭代后s的值
print(t)
#方法二
l=[]
#a=1
def fibo(n):#统计前n个阶乘的和
a=1
for i in range(1,n+1):
a=1 #变量a每次此处迭代会刷新值为1重新开始
for j in range(1,i+1):
global a#全局变量和局部变量产生的值不同,待释疑(因为在range之外定义变量,则不会刷新a值)
a*=j
#a+=j
l.append(a)
return sum(l)-1
f=fibo(20)
print(l)
print(f)
22.递归方法求阶乘
def fibo(n):
s=1
if n==1:#所谓递归,即使预先设定参数最小时的函数