Python 练习

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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值