一、题目:
1、求50以内能被7整除,但不能同时被5整除的所有整数。
2、如果一个3位数的各位数字的立方和等于该数自身,则该数称为“水仙花数”。 例如,153 = 13 + 53 + 33,所以153是一个水仙花数。
求100~1000以内所有“水仙花数”。
3、设有一份某地连续10年内6月1日的气温记录,其数据为(0C):31、30、33、31、28、32、29、33、35、31,
试计算其平均气温。
4、 鸡兔同笼问题。鸡和兔在一个笼子里,从上面数,有35个头; 从下面数,有94只脚。
问笼中鸡和兔各有多少只?
5、百钱买百鸡问题。公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,
如何买?
6、
7、计算n!函数
8、从键盘输入参数n,计算斐波那契数列中第一个大于n的项。
斐波那契数列为:1,1,2,3,5,8,13,......。即从第3项开始,每一项是前二项之和。
9、模拟发微信红包
二、代码展示:
# -*- coding: utf-8 -*-
'''
@Author : Jackma
@Time : 2020/10/30 18:03
@File : 2020_10_30.py
@Software: PyCharm
@URL : www.jackrma.com
@Copyright:博客所有权归本人和CSDN所有,如有转载请在显著位置给出博文
链接和作者姓名,否则本人将付诸法律。
@Version :
'''
# 1
def func():
'''
求50以内能被7整除,但不能同时被5整除的所有整数。
:return:
'''
for i in range(1, 101):
if i%7 == 0 and i%5 != 0:
print(i)
func()
# 2
def ex2_23():
'''
如果一个3位数的各位数字的立方和等于该数自身,则该数称为“水仙花数”。
例如,153 = 13 + 53 + 33,所以153是一个水仙花数。
求100~1000以内所有“水仙花数”。
:return:
'''
for i in range(100,1000):
sum=0
temp=i
while temp:
sum=sum+(temp%10)*(temp%10)*(temp%10) #各个数位的立方累加
temp = int(temp/10)
if sum==i:
print(i)
ex2_23()
# 3
def ex2_24():
'''
设有一份某地连续10年内6月1日的气温记录,其数据为(0C):
31、30、33、31、28、32、29、33、35、31,
试计算其平均气温。
:return:
'''
# a = eval(input("求平均,请输入自然数列表:")) # 输入自然数的列表
a = {31,30,33,31,28,32,29,33,35,31}
v = 0
for i in a:
v += i
print( int(v/len(a)))
ex2_24()
# 4
def ex2_25():
'''
鸡兔同笼问题。鸡和兔在一个笼子里,从上面数,有35个头;
从下面数,有94只脚。
问笼中鸡和兔各有多少只?
:return:
'''
for x in range(1, 23):
y = 35 - x
if 4 * x + 2 * y == 94:
print('兔子有%s只,鸡有%s只' % (x, y))
ex2_25()
# 5
def ex2_26():
'''
百钱买百鸡问题。
公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,
如何买?
:return:
'''
for x in range(1, 20): # 从1开始买公鸡,不包括20
for y in range(1, 33): # 从1开始买母鸡,不包括33
z = 100 - x - y # 计算剩余要买多少个小鸡,小鸡的个数要满足3的倍数
if (z % 3 == 0) and (5 * x + 3 * y + z / 3 == 100): # 判断买的计划是否符合条件
print('公鸡:%s 母鸡:%s 小鸡:%s' % (x, y, z))
ex2_26()
# 6
def ex2_27():
'''
:return:
'''
i = 1
x = 1
while i <= 9:
x = (x + 1) * 2
i = i + 1
print('西瓜总数:x=', x)
ex2_27()
# 7
def fun_28(n):
'''
编写计算n!的函数。
:return:
'''
if n == 1:
return 1
else:
return n * fun_28(n - 1)
x = eval(input('请输入n的值:'))
y = fun_28(x)
print(x, '! = ', y)
# 8
def fun_29(n):
'''
从键盘输入参数n,计算斐波那契数列中第一个大于n的项。
斐波那契数列为:1,1,2,3,5,8,13,......。
即从第3项开始,每一项是前二项之和。
:return:
'''
a,b = 1,1
while b<n:
a,b = b, a+b
else:
return b
x = eval(input('请输入n的值:'))
y = fun_29(x)
print('第一个大于', x, '的项 = ',y)
# 9
import random
def hongbao(total, num):
'''
模拟发微信红包
:return:
'''
each=[]
already = 0
for i in range(1, num):
t = random.randint(1, (total - already) - (num - i))
each.append(t)
already = already + t
each.append(total - already)
return each
if __name__ == '__main__':
total = 50
num = 5
for i in range(10):
each = hongbao(total, num)
print(each)