1、题目:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
# -*- coding: UTF-8 -*-
count=0
for i in xrange(1,5):
for j in xrange(1,5):
if i!=j:
for k in xrange(1,5):
if k!=i and k!=j:
count=count+1
print str(100*i+10*j+k)+'\n'
print 'count='+str(count)
2、题目:输入三个整数x,y,z,请把这三个数由小到大输出。
程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
# -*- coding: UTF-8 -*-
x,y,z=raw_input('input 3 numbers:').split()
l=[]
l.append(int(x))
l.append(int(y))
l.append(int(z))
l.sort()
print l
3、题目:斐波那契数列。
程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。
答:
# -*- coding: UTF-8 -*-
l=[]
l.append(0)
l.append(1)
for i in xrange(2,100):
l.append(l[i-1]+l[i-2])
print l
或
4、题目:将一个列表的数据复制到另一个列表中。
程序分析:使用列表[:]。
可区分深复制和浅复制的区别
# -*- coding: UTF-8 -*-
#skin copy
x=[1,2,3,5,6]
y=x
print y
x.append(7)
print y
#deep-copy
x=[1,2,3,5,6]
z=x[:]
print z
x.append(7)
print z
5、题目:输出 9*9 乘法口诀表。
程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
# -*- coding: UTF-8 -*-
#9*9
for i in xrange(1,10):
for j in xrange(1,i+1):
print '%1d*%1d=%2d ' %(i,j,i*j),
print '\n'