- 输入n的值,求出n的阶乘。
n = input('输入n的值:')
i = int(n)
s = 1
while i > 0:
s *= i
i -= 1
print("n的阶乘: ", s)
- 折纸上月球
大家都看过科幻片《火星救援The Martian》吧,电影里航天员们在太空中碰到各种情况都是靠计算机模拟、计算来解决问题的。
我们在地球上也可以靠高大上的Python语言来解决问题。现在问题来了:我们都知道,月亮在一个椭圆形的轨道上绕地球公转,
因此两者的距离是不断变化的,它们的最小距离是363300公里。现在我们都想去月球旅游(地球玩腻了,想换个口味),
但是坐火箭上天一次就带辣么几个人,我们等不及。好消息,好消息,厂家现在开发出逆天神技——折纸上月球!
只需一张很大的A4纸,厚度为0.088毫米,折一次就0.176毫米,折两次就0.352毫米……多折几次就很高了。
穿上冲锋衣,拿上登山杖,带上自拍杆,我们爬着就可以上月球发朋友圈了。我就想问一句:要上月球,我们到底需要折多少次?
import math as m
# 折纸上月球 距离s = 363300*10^3 纸的厚度 l = 0.088
# 折一次变0.088*2 = 0.176,这两次变 0.088 * 2^2 = 0.352
# ceil(0.088 * 2^n) >= 363300000
# 求出n
x = 363300000/0.088
y = 2
res = m.ceil(m.log(x, y))
print("需要折的次数:",res)
height = 0.088 * m.pow(2, res)
print("折完后纸的高度:",height)
- 篮球弹跳高度的计算
书呆子就是书呆子,打个篮球脑子也不闲着。这种人说好听的叫‘geek’,说不好听的就是叫‘nerd’。
这不,书呆子看着篮球在想:如果篮球从某一高度落下,每次落地后反弹回原来高度的一半再落下。
那么球在第10次落地时,共经过多少米呢? 第10次反弹多高? (你问我这个题是不是瞎编的?当然是了,你什么时候见过书呆子打篮球?)
输入:输入一个整数h,单位是米,表示球的初始高度。
输出:输出包含两行:
第1行:到球第10次落地时,一共经过的距离。
第2行:第10次弹跳的高度。
例如输入:20 对应输出:第一行:59.921875 第二行:0.01953125
h0 = input('球的初始高度:')
h0 = int(h0)
# 弹跳第十次的高度
h10 = h0 / m.pow(2.0,10)
print('球弹起第十次时的最高高度:',h10)
# 弹跳十次走过的路程
L = h0
for i in range(1,11):
L += h0 / m.pow(2.0, i) * 2
print("球弹跳十次走过的路程:",L)
- 我国现有13亿人口,设每年增长0.8%,编写程序,计算多少年后达到26亿?
now = 13
future = 26
n = 0
while now <= future:
now = now * 1.008
n += 1
print("经过{}年,人口达到{}亿".format(n,now))
- 求1!+2!+3!+4!+5!的和。
def fun(n):
s = 1
while n > 0:
s *= n
n -= 1
return s
res = fun(1) + fun(2) + fun(3) + fun(4) + fun(5)
print(res)
- 星号三角形:读入一个整数N,N是奇数,输出由星号字符组成的等边三角形,要求:第1行1个星号,第2行3个星号,第3行5个星号,依次类推,最后一行共N的星号。
def fun(N):
if N % 2 == 0:
print("请输入奇数")
return
i = 1
for i in range(1,N+1,2):
print('*'* i)
N = int(input("输入一个奇数:"))
fun(N)