python ACM ,持续更新中。。。。。。。。。。。。

1, C语言实验——图形输出(字符常量练习):  http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1112

python中用print总是会出现回车空格,非常讨厌,然而,Python 3.0下print已经从语句变为函数了,我用的使python2.7.4,所以呢,还不行。。。。。但是我们可以用其他方法:

import sys

sys.stdout.write("abc")

sys.stdout.write("def")
#!/usr/bin/env python

#coding:utf8



import sys



for i in range(1, 6+1):

    for j in range(1, i+1):

        sys.stdout.write("#")

    sys.stdout.write('\n')

 

2, C语言实验——交换两个整数的值(顺序结构):http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1115

pathon交换两个值非常简单哦,看下面:

#!/usr/bin/env python

#coding:utf8



x, y = raw_input().split()



x , y = y, x

print x,y

 

3, C语言实验——for循环打印图形(循环结构): http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1121

也许使因为刚使用,所以代码写的有点长,以后看看能不能精简些,欢迎拍砖

 

python ACM ,持续更新中。。。。。。。。。。。。
#!/usr/bin/env python

#coding:utf8



import sys



for i in range(1,7+1):

    if i<4:

        for j in range(1,5-i):

            sys.stdout.write(" ")

        for j in range(1,2*i):

            sys.stdout.write("*")

        sys.stdout.write("\n")

    elif i==4:

        for j in range(1,7+1):

            sys.stdout.write("*")

        sys.stdout.write("\n")

    else:

        for j in range(1,i-4+1):

            sys.stdout.write(" ")

        for j in range(1,6-2*(i-5)):

            sys.stdout.write("*")

        sys.stdout.write("\n")
View Code

 

 

 4, IBM Minus One : http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1053

python ACM ,持续更新中。。。。。。。。。。。。
#!/usr/bin/env python

#coding:utf-8



import sys



t = int(raw_input())

cases = 0



while t>0:

    t = t-1

    cases = cases+1

    line = raw_input()

    res = []

    for ch in line:

        if ch=='Z':

            res.append('A')

        else:

            res.append(chr(ord(ch)+1))

    print "String #%d" % cases

    for ch in res:

        sys.stdout.write("%c" % ch)

    print '\n'
View Code

 

5, 1574 组合数的计算: http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1574

 

python ACM ,持续更新中。。。。。。。。。。。。
#!/usr/bin/env python

# coding=utf-8



import math



t = int(raw_input())



while t>0:

    if t==0:

        break

    t = t-1

    a,b=raw_input().split()

    if int(a)<int(b):

        print "0"

        continue

    print long(math.factorial(int(a)))/long(math.factorial(int(a)-int(b)))/long(math.factorial(int(b)))
View Code

 

 

6, 1174 C语言实验——打印菱形: http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1174

python ACM ,持续更新中。。。。。。。。。。。。
#!/usr/bin/env python

# coding=utf-8



import sys



while True:

    n = int(raw_input())

    if n==1:

        print "*"

        continue

    for i in range(1,n):

        for j in range(1,n+1-i):

            sys.stdout.write(" ")

        for j in range(1,2*i):

            sys.stdout.write("*")

        print "\r"

    for i in range(1,2*n):

        sys.stdout.write("*")

    print "\r"

    for i in range(1,n):

        for j in range(1,i+1):

            sys.stdout.write(" ")

        for j in range(1,2*(n-i)):

            sys.stdout.write("*")

        print "\r"
View Code

 

7, 2543 整除 : http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2543

 

python ACM ,持续更新中。。。。。。。。。。。。
#!/usr/bin/env python

#coding:utf-8



while True:

    n = int(raw_input())

    ans = n/5+n/6+n/8-n/30-n/40-n/24+n/120

    print ans
View Code

 

 

 

8, 1064 Binary Numbers : http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1064

 

python ACM ,持续更新中。。。。。。。。。。。。
#!/usr/bin/env python

#coding:utf-8



import sys



t = int(raw_input())



while t>0:

    t = t-1

    n = int(raw_input())

    cnt = 0

    while n!=0:

        if n&1:

            sys.stdout.write("%d " % cnt)

        cnt=cnt+1

        n>>=1

    print "\r"
View Code

 

 

 

9, 1791 集合相等问题 : http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1791

python ACM ,持续更新中。。。。。。。。。。。。
#!/usr/bin/env python

#coding:utf-8



while True:

    n = int(raw_input())

    a=[]

    b=[]

    line1=raw_input()

    line2=raw_input()

    for x in line1.split():

        a.append(int(x))

    for x in line2.split():

        b.append(int(x))

    a.sort()

    b.sort()

    if a==b:

        print "YES"

    else:

        print "NO"
View Code

 

10, 等值数目 : http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1227

 

python ACM ,持续更新中。。。。。。。。。。。。
#!/usr/bin/env python

#coding:utf-8



while True:

    n,m=raw_input().split()

    a=[]

    b=[]

    line1=raw_input()

    line2=raw_input()

    for x in line1.split():

        a.append(int(x))

    for x in line2.split():

        b.append(int(x))

    a.sort()

    b.sort()

    cnt1=0

    cnt2=0

    ans=0

    while cnt1<int(n) and cnt2<int(m):

        if(a[cnt1]==b[cnt2]):

            ans=ans+1

            cnt1=cnt1+1

            cnt2=cnt2+1

        elif(a[cnt1]>b[cnt2]):

            cnt2=cnt2+1

        elif(a[cnt1]<b[cnt2]):

            cnt1=cnt1+1

    print ans
View Code

 

 

 

11, C语言实验——数日子 : http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1182

 

python ACM ,持续更新中。。。。。。。。。。。。
#!/usr/bin/env python

#coding:utf-8



from datetime import *

import time



n=int(raw_input())



while n>0:

    n=n-1

    y,m,d=raw_input().split()

    now=date(int(y),int(m),int(d))

    a=int(now.strftime("%j"))

    print a
View Code

 

具体的时间函数的使用可参考:http://www.cnblogs.com/lhj588/archive/2012/04/23/2466653.html

 

 12, 2565 区间之和 : http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2565

python ACM ,持续更新中。。。。。。。。。。。。
#!/usr/bin/env python

# coding=utf-8



n = int(raw_input())



a=[]

lines=raw_input()

for x in lines.split():

    a.append(int(x))

l,r=raw_input().split()

b=[]

b.append(a[0])

for i in range(1,n):

    b.append(b[i-1]+a[i])

if int(l)==1:

    print b[int(r)-1]

else:

    print b[int(r)-1]-b[int(l)-2]
View Code

 

 13, C语言实验——大小写转换: http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1168

python ACM ,持续更新中。。。。。。。。。。。。
#!/usr/bin/env python

# coding=utf-8



import sys

import string



lines=raw_input()

for ch in lines:

    if ch.isupper():

        sys.stdout.write("%c" % ch.lower())

    elif ch.islower():

        sys.stdout.write("%c" % ch.upper())

    else:

        sys.stdout.write("%c" % ch)

print "\r"
View Code

更多的字符串操作:http://blog.csdn.net/liuxincumt/article/details/7945337

 

 14, 1576 魔幻数字47 : http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1576

python ACM ,持续更新中。。。。。。。。。。。。
#!/usr/bin/env python

# coding=utf-8



num=[47,147,247,347,447,547,647,747,847,947,1047,1147,1247,1347,1447,1547,1647,1747,1847,1947,2047,2147,2247,2347,2447,2547,2647,2747,2847,2947,3047,3147,3247,3347,3447,3547,3647,3747,3847,3947,4047,4147,4247,4347,4447,4547,4647,4747,4847,4947,5047,5147,5247,5347,5447,5547,5647,5747,5847,5947,6047,6147,6247,6347,6447,6547,6647,6747,6847,6947,7047,7147,7247,7347,7447,7547,7647,7747,7847,7947,8047,8147,8247,8347,8447,8547,8647,8747,8847,8947,9047,9147,9247,9347,9447,9547,9647,9747,9847,9947];



n = int(raw_input())



while n>0:

    n=n-1

    a,b=raw_input().split()

    if int(a)>int(b):  #注意大小的比较

        a,b=b,a

    flag=0

    for x in range(0,100):

        if num[x]>=int(a) and num[x]<=int(b):

            print num[x]

            flag=1

    if flag==0:

        print "NONE"
View Code

 

15, 1595 选夫婿2: http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1595

python ACM ,持续更新中。。。。。。。。。。。。
#!/usr/bin/env python

# coding=utf-8



while True:

    n = int(raw_input())

    dic={}

    for i in range(0,n):

        a,b=raw_input().split()

        dic[a]=int(b)

#    sorted(dic.items(),key=lambda dic:dic[1])

    a,b=raw_input().split()

    for x in dic.keys():

        if dic[x]<int(a) or dic[x]>int(b):

            del dic[x]

    ans=sorted(dic.items(),key=lambda dic:dic[1])

#    for x in dic.keys():

#        print "%s %d" % (x,dic[x]) 

    name=[]

    hei=[]

    if ans==[]:

        print "No"

        continue

    name,hei=zip(*ans)

    length=len(name)

    for i in range(0,length):

        print "%s %d" % (name[i],hei[i])
View Code

 

16, 1573 排排站: http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1573

python ACM ,持续更新中。。。。。。。。。。。。
#!/usr/bin/env python

# coding=utf-8



t = int(raw_input())

cases=0



while t>0:

    t=t-1

    cases=cases+1

    n=int(raw_input())

    num=[]

    for x in raw_input().split():

        num.append(float(x))

    me=num[n-1]

    num.sort()

    ans=0

    for i in range(0,n):

        if me>=num[i]:

            ans=ans+1

        else:

            break

#    if ans!=n and ans!=1:

#        ans=ans-1

    print "Case #%d: %d" % (cases,ans)
View Code

 map排序详细介绍:http://blog.csdn.net/business122/article/details/7537014

 

你可能感兴趣的:(python)