「学习笔记」3.25代码学习

今天在刷题的时候发现自己对递归的处理还是不太好,很明显的递归可以看出来,但是如题中的楼梯走台阶的问题,自己就死活没理解递归的意义,后来也有一道题也是这样,看来这块儿是薄弱的地方。
这一周学习效率都很低,经常溜号,我这才写两周啊,不行不行,我要坚持,坚持!!!

2039判断三角形
2039

#encoding:utf8
#2039三角形

def is_triangle(a,b,c):
    if a+b>c and a+c>b and b+c>a:
        print 'YES'
    else:
        print 'NO'


m=int(raw_input())
s=[]
for i in range(m):
    l=raw_input().split(' ')
    s.append(l)
print s

for i in range(m):
    is_triangle(s[i][0],s[i][1],s[i][2])

2040亲和数
2040

#encoding:utf8
##亲和数

def divisor(x):
    d=[]
    for i in range(1,x):
        if x%i==0:
            d.append(i)
    return d

def is_intimate(a,b):
    sum_a=sum(divisor(int(a)))
    sum_b=sum(divisor(int(b)))
    if sum_a==int(b) and sum_b==int(a):
        print 'YES'
    else:
        print 'NO'

m=int(raw_input())
l=[]
for i in range(m):
    l.append(raw_input().split(' '))

for i in range(m):
    is_intimate(l[i][0],l[i][1])

2041超级楼梯
2041

#encoding:utf8
##2041超级楼梯

##这道题原来思路不对,自己并没有想通该如何表示
##网上参考:每次有2种走法,并且要求最后还能干好到达M级。
##正着不行,逆向思维一下,要达到最后一级的前一级只能是M-1或者M-2;
##也就是说就是到达M-1的走法加上M-2的走法相加就等于到达最后一级的走法。
##所以递推公式:
##F(n)=F(n-1)+F(n-2);
##F(1)=1,F(2 )=2;
##这就是斐波那契数列:每个数都等于它的前两个数字和(前2个除外);

n=int(raw_input())
l=[]
for i in range(n):
    a=raw_input()
    l.append(a)
l=map(int,l)
#print l

def stages(m):
    if m==1 or m==2:
        return 1
    else:
        return stages(m-1)+stages(m-2)


for i in l:
    print stages(i)

2042不容易系列
2042

#encoding:utf8
##2042不容易系列之二


def func(N):
    if N==0:
        return 3
    else:
        return 2*(func(N-1)-1)


n=int(raw_input())
l=[]
for i in range(n):
    a=raw_input()
    l.append(a)
l=map(int,l)
print l


for i in l:
    print func(i)

2043密码
2043
2043-2

#encoding:utf8
##2043密码

n=int(raw_input())
l=[]
s=[]
for i in range(n):
    s.append(raw_input())
for i in range(len(s)):
    l.append(map(ord,s[i]))
for k in l:
    flag=[]
    if len(k)>=8 and len(k)<=16:
        for i in k:
            if i in range(65,91):
                flag.append('A')
            elif i in range(97,123):
                flag.append('a')
            elif i in range(48,58):
                flag.append('0')
            elif i in (33,51,52,53,58,64,94,126):
                flag.append(':')
            else:
                print 'NO'
        if len(set(flag))>=3:
            print 'YES'
        else:
            print 'NO'
    else:
        print 'NO'

# l='a1b2c3d4'
# l=map(ord,l)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值