假设你的键盘只有以下键: A Ctrl + A Ctrl + C Ctrl + V

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/u013251692/article/details/78025660

假设你的键盘只有以下键:
A
Ctrl + A
Ctrl + C
Ctrl + V
这里Ctrl+A,Ctrl+C,Ctrl+V分别代表”全选”,“复制”,“粘贴”。
如果你只能按键盘N次,请写一个程序可以产生最多数量的A。

思路分析,其实只需要写出前面按键几次能够产生的结果就可以分析出答案:
按键1次没有任何结果还是之前的1个A,同理到按键3次的时候会多出1个A,当前共有2个A,按键4次的时候只可以全选,复制,粘贴粘贴,此时共3个A,但5次的时候可以选择在第3次时选择全选,复制,粘贴也可以选择方案全选,复制,粘贴粘贴粘贴,共有4个A,在此之后,都有这两种选择,从2次前全选复制粘贴或者一直粘贴,只要比较俩个值大小就好了
次数- - - - - A的数量
1 - - - - - - - - 1
2 - - - - - - - - 1
3 - - - - - - - - 2
4 - - - - - - - - 3
5 - - - - - - - - 4
6 - - - - - - - - 6
7 - - - - - - - - 8

def get_max_A(times):
    if times==1:           
        return(1)
    if times==2:
        return(1)
    b2=1
    b1=1
    for x in range(3,times+1):
        if b1+1>=b2*2:
            max_a=b1+1
        else:
            max_a=b2*2
        b2=b1
        b1=max_a
        if x==times:
            return(max_a)

程序里面b2,b1分别代表当前操作次数之前的2次时的产生的A的数量,1次的A的数量

猜你喜欢

转载自blog.csdn.net/u013251692/article/details/78025660
今日推荐