1、题目:有四个数字:1、2、3、4,能组成多少个 互不相同且无重复数字的三位数?各是多少?
程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
#b代表百位数
#s 代表十位数
#g 代表个位数
i = 1
i = 0
for b in range(1,5):
for s in range(1,5):
for g in range(1,5):
if b != s and b !=g and s != g:
print('%d%d%d'%(b,s,g))
i += 1
print('一共%d个'%i)
2、题目:输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以3月5日为例,应该先把前两个月的加起来,
然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于2时需考虑多加一天a是天数
year = int(input('year:'))
month = int(input('month:'))
day = int(input('day:'))
day_list = [0,31,59,90,120,151,182,213,243,273,304,334,365]
num_day = 0
if 0<month<=12:
num_day = day_list[month-1]
else:
print("error")
num_day += day
if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):
if month > 2 :
num_day += 1
print(num_day)
3、题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
count =0
for i in range(100,1000):
ge = i % 10
shi = int(i % 100 / 10)
bai = int(i / 100)
if ge**3 + shi**3 + bai**3 == i:
print('%d'%i)
count += 1
print('一共有%d个'%count)