本文已参与「新人创作礼」活动,一起开启掘金创作之路。
python来咯!第一天一分钱,第二天两分钱,你丈母娘真会算
第1天给丈母娘1分钱,第2天给2分钱,第3天是4分钱,以此类推,给前一天的2倍,给一个月就行。按30天算。 第x天给多少钱,共给多少钱,一算吓一跳
偶然看到这道题,闲着无聊就用python把他搞了一下
base = 1e-2
n = 30
sum = 0
print("*"*30,"打印账单", "*"*30)
for i in range(1, n + 1, 1):
print("第", str(i), "天要给(单位:元): ", base)
sum += base
base *= 2
print("*"*60)
print("30天总共要给(单位:元): ", sum)
来看看你的账单,一个月也就1000个w而已
帮你把支出的曲线画一下
import matplotlib.pyplot as plt
base = 1e-2
n = 30
sum = 0
sum_list = []
day_list = []
for i in range(1, n + 1, 1):
day_list.append(i)
sum += base
sum_list.append(sum)
base *= 2
plt.plot(day_list,sum_list)
plt.rcParams["font.sans-serif"]=["SimHei"] #设置字体
plt.xlabel('第i天')
y_t = range(0, 11000000, 1000000)
plt.yticks(y_t)
plt.grid()
plt.ylabel('总共给了多少元')
plt.show()
注意,纵轴最大刻度是
这个题其实由一个印度古老传说演化而来,是典型的棋盘麦粒问题。传说是这样的:
在印度有一个古老的传说:舍罕王打算奖赏国际象棋的发明人——宰相西萨·班·达依尔。国王问他想要什么,他对国王说:“陛下,请您在这张棋盘的第1个小格里,赏给我1粒米,在第2个小格里给2粒,第3小格给4粒,以后每一小格都比前一小格加一倍。请您把这样摆满棋盘上所有的64格的米粒,都赏给您的仆人吧!”
国王笑了,认为宰相太小家子气,但等他知道结果后,他就笑不出声了。 那么,宰相要求得到的米粒到底有多少呢?
我们可以算一下国王需要赏给宰相多少粒米
n = 64
sum = 0
base = 1
for i in range(1, n+1, 1):
sum += base
base *= 2
print('总共需要多少粒米:',sum)
运行结果:
显然给出米粒数不够直观,根据网上的说法,一公斤大约有5w粒大米,我们求一下大约需要多少公斤大米
print('总共需', sum//50000, '公斤大米')
运行结果:
补充: