问:
【基础题】:输出 9*9 口诀表
【提高题】:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? (PS:例如输入一个数字15,计算出第15个月兔子的总数)
答:
【基础题】:输出 9*9 口诀表
方法1:
for i in range(1, 10): for j in range(1, i+1): print('%d *' % j, '%d' % i, '= %-3d' % (i*j), end=' ') # 第三个对象是左对齐,宽度为3,end=''的作用是不换行 print('')
方法2:
i = 1 while i <= 9: j = 1 while j <= i: print("%d * %d = %d " % (j, i, j*i),end="") j += 1 print("") i += 1
方法3:
for i in range(1, 10): for j in range(1, i+1): print('{} * {} = {} '.format(j, i, j*i), end=' ') # 此处使用 format 进行格式化输出 print('')
输出结果:
【提高题】:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? (PS:例如输入一个数字15,计算出第15个月兔子的总数)
''' 实际月份:1 2 3 4 5 6 7 8 生仔对数:0 0 1 1 2 3 5 8 成兔对数:0 0 1 2 3 5 8 13 总体对数:1 1 2 3 5 8 13 21 规律 ==》 斐波那契数列:前面相邻两项之和,构成了后一项 '''
def get_rabbit_number_by_month(total_month): if total_month == 1 or total_month == 2: return 1 else: return get_rabbit_number_by_month(total_month-1) + get_rabbit_number_by_month(total_month-2) if __name__ == "__main__": total_month = int(input("您想要知道第几个月的兔子总数:")) print("第{}个月兔子总数:{}对".format(total_month,get_rabbit_number_by_month(total_month)))
输出结果: