[关闭]
@jerrywcy 2019-06-13T08:23:38.000000Z 字数 15243 阅读 7485

NFLSOJ Python 题解

NFLSOJ python



章节1 输入、输出

A+B Problem

  1. a,b=map(int,input().split())
  2. print(a+b)

Hello World!

  1. print("Hello World!")

打印小写字母表

  1. print("abcdefghijklm")
  2. print("nopqrstuvwxyz")
  3. print("zyxwvutsrqpon")
  4. print("mlkjihgfedcba")

章节2 算术运算和赋值语句

混合运算

  1. a,b=map(int,input().split())
  2. print((a+b)*(a-b))

求一个数的立方

  1. a=int(input())
  2. print(a**3)

求长方形面积和周长

  1. a,b=map(int,input().split())
  2. print(a*b,2*(a+b))

计算线段长度

  1. import math
  2. xa,ya=map(int,input().split())
  3. xb,yb=map(int,input().split())
  4. print("%.3f"%(math.sqrt((abs(xa-xb))**2+(abs(ya-yb))**2)))

求三角形周长

  1. import math
  2. def dis(xa,ya,xb,yb):
  3. return math.sqrt((abs(xa-xb))**2+(abs(ya-yb))**2)
  4. x1,y1,x2,y2,x3,y3=map(int,input().split())
  5. print("%.2f"%(dis(x1,y1,x2,y2)+dis(x2,y2,x3,y3)+dis(x3,y3,x1,y1)))

手表

  1. S=int(input())
  2. h=S//3600
  3. m=S/60%60
  4. s=S%60
  5. print("%d:%d:%d"%(h,m,s))

铺地砖

  1. n,m=map(int,input().split())
  2. print((n//m)**2)

拼接

  1. n=int(input())
  2. print((n-1)*4)

服装搭配I

  1. m,n=map(int,input().split())
  2. print(m*n)

魔方

  1. n=int(input())
  2. print(8)
  3. print(12*(n-2))
  4. print(6*(n-2)*(n-2))

分糖果

  1. a,b,c,d,e=map(int,input().split())
  2. e+=a//3
  3. b+=a//3
  4. a//=3
  5. a+=b//3
  6. c+=b//3
  7. b//=3
  8. b+=c//3
  9. d+=c//3
  10. c//=3
  11. c+=d//3
  12. e+=d//3
  13. d//=3
  14. d+=e//3
  15. a+=e//3
  16. e//=3
  17. print(a,b,c,d,e)

求任意三位数各个数位上数字的和

  1. x=int(input())
  2. ans=0
  3. while x:
  4. ans+=x%10
  5. x//=10
  6. print(ans)

输入一个三位数,把个位和百位对调后输出

  1. x=int(input())
  2. a=0
  3. while x:
  4. a=a*10+x%10
  5. x//=10
  6. print(a)

倒序输出一个四位整数

  1. x=int(input())
  2. a=0
  3. while x:
  4. a=a*10+x%10
  5. x//=10
  6. print(a)

算算和是多少

  1. a=int(input())
  2. b=0
  3. x=a
  4. while x:
  5. b=b*10+x%10
  6. x//=10
  7. print(a+b)

章节3 关系、逻辑运算与选择语句

两数比大小

  1. a,b=map(int,input().split())
  2. print(max(a,b))

判断奇偶数

  1. a=int(input())
  2. if a%2==0:
  3. print("y e s")
  4. else:
  5. print("n o")

交易预期

  1. p,q,m=map(int,input().split())
  2. if p<=m and m<=q:
  3. print("Yes")
  4. else:
  5. print("No")

恐龙园买门票

  1. a=float(input())
  2. if a<1.3:
  3. print(60)
  4. else:
  5. print(120)

心系南方灾区

  1. m,n=map(int,input().split())
  2. print((m+n-1)//n)

求三个数的最大数

  1. a,b,c=map(int,input().split())
  2. print(max(a,max(b,c)))

三数最小数

  1. a,b,c=map(int,input().split())
  2. print(min(a,min(b,c)))

求任意三位数打乱次序后的最大值

  1. x=int(input())
  2. a=[x//100,x//10%10,x%10]
  3. a.sort()
  4. print(a[2]*100+a[1]*10+a[0])

判断三个整数是否相邻

  1. a=[int(i) for i in input().split()]
  2. a.sort()
  3. if a[0]+1==a[1] and a[1]+1==a[2]:
  4. print("TRUE")
  5. else:
  6. print("FALSE")

判断某年某月的天数

  1. def ck(y):
  2. if y%400==0:
  3. return 1
  4. elif y%100==0:
  5. return 0
  6. else:
  7. return y%4==0
  8. month=[0,31,0,31,30,31,30,31,31,30,31,30,31]
  9. y,m=map(int,input().split())
  10. if ck(y):
  11. month[2]=29
  12. else:
  13. month[2]=28
  14. print(month[m])

比赛日期

  1. def ck(y):
  2. if y%400==0:
  3. return 1
  4. elif y%100==0:
  5. return 0
  6. else:
  7. return y%4==0
  8. month=[0,31,0,31,30,31,30,31,31,30,31,30,31]
  9. m,d,y=map(int,input().split())
  10. if ck(y):
  11. month[2]=29
  12. else:
  13. month[2]=28
  14. d+=1
  15. if d>month[m]:
  16. d=1
  17. m+=1
  18. if m>12:
  19. m=1
  20. y+=1
  21. print("%d/%d/%d"%(m,d,y))

第一个人大?

  1. y,m,d=map(int,input().split())
  2. t1=y*10000+m*100+d
  3. y,m,d=map(int,input().split())
  4. t2=y*10000+m*100+d
  5. if t1<t2:
  6. print("Yes")
  7. else:
  8. print("No")

能否构成直角三角形

  1. a,b,c=map(int,input().split())
  2. x=[a,b,c]
  3. x.sort()
  4. a=x[0];b=x[1];c=x[2];
  5. if a*a+b*b==c*c:
  6. print("%.1f"%(a*b/2))
  7. else:
  8. print("No")

三角形类别

  1. x=[int(i) for i in input().split()]
  2. x.sort()
  3. a=x[0]
  4. b=x[1]
  5. c=x[2]
  6. if a+b<=c:
  7. print("no")
  8. elif a*a+b*b>c*c:
  9. print("ruijiao")
  10. elif a*a+b*b==c*c:
  11. print("zhijiao")
  12. elif a*a+b*b<c*c:
  13. print("dunjiao")

时间转换

  1. t=int(input())
  2. h=t//3600
  3. m=t//60%60
  4. s=t%60
  5. print("%02d:%02d:%02d"%(h,m,s))

小 X 与机器人 (betago)

  1. a1,a2,b1,b2=map(int,input().split())
  2. ss=0
  3. sy=0
  4. if abs(a1-b1)==18:
  5. ss=18+a2-1+b2-1
  6. sy=18+19-a2+19-b2
  7. if abs(a2-b2)==18:
  8. ss=18+a1-1+b1-1
  9. sy=18+19-a1+19-b1
  10. if a1==b1:
  11. ss=abs(a2-b2)
  12. if a2==b2:
  13. ss=abs(a1-b1)
  14. if ss+sy==0:
  15. ss=abs(a1-b1)+abs(a2-b2)
  16. if ss>sy and sy!=0:
  17. print(sy)
  18. else:
  19. print(ss)

章节4 循环语句for

编程求1+3+5+...+n

  1. n=int(input())
  2. ans=0
  3. for i in range(1,n+1,2):
  4. ans+=i
  5. print(ans)

编程求解2+4+6+...+n

  1. n=int(input())
  2. ans=0
  3. for i in range(2,n+1,2):
  4. ans+=i
  5. print(ans)

求100+97+……+4+1的值。

  1. ans=0
  2. for i in range(1,101,3):
  3. ans+=i
  4. print(ans)

分别求奇数和偶数和

  1. n=int(input())
  2. a=[0,0]
  3. for i in range(1,n+1):
  4. x=int(input())
  5. a[x%2]+=x
  6. print(a[1])
  7. print(a[0])

判奇偶求和

  1. n=int(input())
  2. ans=0
  3. if n%2==1:
  4. for i in range(2,n+1,2):
  5. ans+=i
  6. else:
  7. for i in range(1,n+1):
  8. if n%i==0:
  9. ans+=i
  10. print(ans)

编程求1+1/2+1/3+...+1/n

  1. n=int(input())
  2. ans=0.0
  3. for i in range(1,n+1):
  4. ans+=1/i
  5. print("%.3f"%(ans))

求函数值

  1. import math
  2. n,x=map(int,input().split())
  3. ans=0.0
  4. ans+=x
  5. for i in range(1,n+1):
  6. ans=math.sqrt(i+ans)
  7. print("%.3f"%(ans))

同因查找

  1. for i in range(20,1001):
  2. if i%2==0 and i%3==0 and i%7==0:
  3. print(i)

求满足条件的整数个数

  1. n=int(input())
  2. ans=0
  3. for i in range(1,n+1):
  4. if i%3==2 and i%5==3 and i%7==2:
  5. ans+=1
  6. print(ans)

打折优惠

  1. n=int(input())
  2. ans=0.0
  3. a=[int(i) for i in input().split()]
  4. for i in a:ans+=i
  5. if ans>100:
  6. ans=100+0.9*(ans-100)
  7. print("%.2f"%(ans))

选裙子

  1. n=int(input())
  2. ans=0
  3. for i in input().split():ans+=int(i)
  4. print((ans-1)%n+1)

自由落体

  1. m,n=map(int,input().split())
  2. h=float(m)
  3. dis=0.0
  4. for i in range(1,n+1):
  5. dis+=h
  6. h/=2
  7. dis+=h
  8. dis-=h
  9. print("%.2f %.2f"%(h,dis))

咪咪的智慧

  1. n,t=map(int,input().split())
  2. a=[int(i) for i in input().split()]
  3. ans=0
  4. for i in a:
  5. if i<t:
  6. ans+=1
  7. print(ans)

寻找雷劈数

  1. for i in range(1000,10000):
  2. a=i//100
  3. b=i%100
  4. if (a+b)**2==i:
  5. print(i)

判断素数

  1. import math
  2. x=int(input())
  3. if x<=1:
  4. print("F")
  5. exit(0)
  6. for i in range(2,int(math.sqrt(x))+1):
  7. if x%i==0:
  8. print("F")
  9. exit(0)
  10. print("T")

二维矩阵数字的和

  1. n=int(input())
  2. ans=0
  3. for i in range(1,n+1):
  4. ans+=i*(2*i-1)
  5. print(ans)

章节5 循环语句while

编程求1+3+5+...+n

  1. n=int(input())
  2. ans=0
  3. for i in range(1,n+1,2):
  4. ans+=i
  5. print(ans)

编程求解2+4+6+...+n

  1. n=int(input())
  2. ans=0
  3. for i in range(2,n+1,2):
  4. ans+=i
  5. print(ans)

角谷猜想

  1. n=int(input())
  2. cnt=0
  3. while n!=1:
  4. if n%2==0:n//=2
  5. else:n=n*3+1
  6. cnt+=1
  7. print(cnt)

求恰好使s=1+1/2+1/3+…+1/n的值大于X时n的值。

  1. x=int(input())
  2. ans=0.0
  3. i=0
  4. while ans<=x:
  5. i+=1
  6. ans+=1/i
  7. print(i)

至少多少

  1. m=int(input())
  2. i=0
  3. s=0
  4. while s<m:
  5. i+=1
  6. s+=2*i-1
  7. print(i)

数字5的亲戚们

  1. n=int(input())
  2. ans=0
  3. for i in range(5,n+1,5):
  4. tmp=i
  5. while tmp:
  6. if tmp%10==5:
  7. ans+=1
  8. break
  9. tmp//=10
  10. print(ans)

打折优惠

  1. n=int(input())
  2. ans=0.0
  3. a=[int(i) for i in input().split()]
  4. for i in a:ans+=i
  5. if ans>100:
  6. ans=100+0.9*(ans-100)
  7. print("%.2f"%(ans))

求S的值

  1. print(5488)

级数求和

  1. m=int(input())
  2. i=0
  3. add=0
  4. s=0
  5. while s<=m:
  6. i+=1
  7. add+=i
  8. s+=add
  9. print(i-1,s-add)

求零件个数

  1. #print(173)
  2. for i in range(100,200):
  3. if i%3==2 and i%5==3 and i%7==5:
  4. print(i)
  5. exit(0)

统计大写英文字母的个数

  1. x=input()
  2. ans=0
  3. for i in x:
  4. if 'A'<=i and i<='Z':
  5. ans+=1
  6. print(ans)

统计字符的个数

  1. x=input()
  2. cnt1=cnt2=cnt3=0
  3. for i in x:
  4. if 'A'<=i and i<='Z':
  5. cnt1+=1
  6. elif 'a'<=i and i<='z':
  7. cnt2+=1
  8. elif '0'<=i and i<='9':
  9. cnt3+=1
  10. print(cnt1,cnt2,cnt3)

数列求和2

  1. def p(x):
  2. if x>=0:
  3. print("%d+"%(x),end='')
  4. else:
  5. print("(%d)+"%(x),end='')
  6. x1,x2,x3,xn=map(int,input().split())
  7. d=x2-x1
  8. ans=(x1+xn)*((xn-x1)//d+1)//2
  9. p(x1)
  10. p(x2)
  11. p(x3)
  12. if x3+d!=xn:
  13. print("...+",end='')
  14. if xn>=0:
  15. print("%d"%(xn),end='')
  16. else:
  17. print("(%d)"%(xn),end='')
  18. print("=%d"%(ans))

章节6 列表list

序列 统计

  1. n=int(input())
  2. a=[]
  3. for i in range(0,n):
  4. x=int(input())
  5. a.append(x)
  6. m=int(input())
  7. ans=0
  8. for i in a:
  9. if i==m:
  10. ans+=1
  11. print(ans)

序列 求平均年龄

  1. n=int(input())
  2. s=0
  3. for i in range(0,n):
  4. x=int(input())
  5. s+=x
  6. print("%.2f"%(s/n))

序列 逆序

  1. m=int(input())
  2. a=[int(i) for i in input().split()]
  3. a.reverse()
  4. for i in a:
  5. print(i,end=' ')

序列 输出奇数和偶数

  1. n=int(input())
  2. a=[int(i) for i in input().split()]
  3. odd=[]
  4. even=[]
  5. for i in a:
  6. if i%2==0: even.append(i)
  7. else: odd.append(i)
  8. for i in odd:print(i,end=' ')
  9. print()
  10. for i in even:print(i,end=' ')

序列 最大数的位置

  1. n=int(input())
  2. a=[int(i) for i in input().split()]
  3. maxv=0
  4. for i in a:maxv=max(maxv,i)
  5. for i in range(0,n):
  6. if a[i]==maxv:
  7. print(i+1)

序列 找找谁的身高超过全家的平均身高

  1. n=int(input())
  2. a = [int(x) for x in input().split()]
  3. ans=0.0
  4. for i in a:
  5. ans+=i
  6. ans=ans/n
  7. print("Aver=%0.1f"%(ans))
  8. for i in range(0,n):
  9. if (a[i]>=ans):
  10. print("%d:%d"%(i+1,a[i]),end=' ')

列表元素的移动

  1. n=int(input())
  2. a = [int(i) for i in input().split()]
  3. b=[]
  4. x=int(input())
  5. if (x>1):
  6. b+=(a[0:x-1])
  7. if (x<n):
  8. b+=(a[x:])
  9. b.append(a[x-1])
  10. for i in b:
  11. print(i,end=' ')

列表元素的插入

  1. n=int(input())
  2. a=[int(i) for i in input().split()]
  3. index=int(input())
  4. obj=int(input())
  5. a.insert(index-1,obj)
  6. for i in a:
  7. print(i,end=' ')

列表元素的删除

  1. n=int(input())
  2. a=[int(i) for i in input().split()]
  3. x=int(input())
  4. for i in range(0,n):
  5. if (i!=x-1):
  6. print(a[i],end=' ')

列表 Fish学数学

  1. n=int(input())
  2. a=[]
  3. for i in range(1,n+1):
  4. a.append(int(input()))
  5. ans=0
  6. for i in range(0,n):
  7. for j in range(i+1,n):
  8. if (a[j]<a[i]):
  9. ans+=1
  10. print(ans)

最大最小

  1. def s(x):
  2. ret=0
  3. while (x):
  4. ret+=x%10
  5. x//=10
  6. return ret
  7. l=int(input())
  8. d=int(input())
  9. x=int(input())
  10. minv=10010
  11. maxv=0
  12. for i in range(l,d+1):
  13. if (s(i)==x):
  14. minv=min(minv,i)
  15. maxv=max(maxv,i)
  16. print(minv)
  17. print(maxv)

列表 倒数第二小整数

  1. n=int(input())
  2. a=[int(i) for i in input().split()]
  3. a.sort()
  4. i=len(a)-1
  5. while (a[i]==a[i-1]):
  6. i-=1
  7. print(a[i-1])

下载电影

  1. n,m=map(int,input().split())
  2. a=[int(i) for i in input().split()]
  3. s=0
  4. ans=0.0
  5. for i in range(0,m):
  6. s+=a[i]
  7. ans=max(ans,s/m)
  8. for i in range(m,n):
  9. s=s+a[i]-a[i-m]
  10. ans=max(ans,s/m)
  11. print("%0.2f"%(ans))

赛马

  1. n=int(input())
  2. a1=[int(i) for i in input().split()]
  3. b1=[int(i) for i in input().split()]
  4. x=0
  5. y=0
  6. z=0
  7. a2=[int(i) for i in input().split()]
  8. b2=[int(i) for i in input().split()]
  9. for i in range(0,n):
  10. a=a1[a2[i]-1]
  11. b=b1[b2[i]-1]
  12. if a>b:x+=1
  13. elif a==b:y+=1
  14. else: z+=1
  15. print(x,y,z)

草料开支

  1. n,q=map(int,input().split())
  2. a=[0]*(n+1)
  3. for i in range(1,n+1):
  4. x=int(input())
  5. a[i]=a[i-1]+x;
  6. for i in range(0,q):
  7. s,e=map(int,input().split())
  8. print(a[e]-a[s-1])

奶牛式乘法

  1. a,b=map(int,input().split())
  2. ans=0
  3. tmpa=a
  4. while tmpa:
  5. x=tmpa%10
  6. tmpb=b
  7. while tmpb:
  8. y=tmpb%10
  9. ans+=x*y
  10. tmpb//=10
  11. tmpa//=10
  12. print(ans)

完全图

  1. import math
  2. def dis(x1,y1,x2,y2):
  3. return math.sqrt((x2-x1)**2+(y2-y1)**2)
  4. n=int(input())
  5. x=[]
  6. y=[]
  7. for i in range(0,n):
  8. xx,yy=map(int,input().split())
  9. x.append(xx)
  10. y.append(yy)
  11. ans=0.0
  12. for i in range(0,n-1):
  13. for j in range(i+1,n):
  14. ans+=dis(x[i],y[i],x[j],y[j])
  15. print("%.2f"%(ans))

前缀和

  1. n=int(input())
  2. a=list(map(int,input().split()))
  3. s=[0]
  4. for i in range(0,n):
  5. s.append(s[i]+a[i])
  6. q=int(input())
  7. for i in range(1,q+1):
  8. l,r=map(int,input().split())
  9. print(s[r]-s[l-1])

一年中的第几天

  1. def leap(year):
  2. if (year%400==0):return 1
  3. if (year%100==0):return 0
  4. return year%4==0
  5. a=[0,31,0,31,30,31,30,31,31,30,31,30,31]
  6. y,m,d=map(int,input().split("-"))
  7. if (leap(y)):a[2]=29
  8. else:a[2]=28
  9. ans=d
  10. for i in range(1,m):
  11. ans+=a[i]
  12. print(ans)

二维矩阵数字的和

  1. n=int(input())
  2. ans=0
  3. for i in range(1,n+1):
  4. ans+=i*(2*i-1)
  5. print(ans)

求N个整数的平均数、众数和中位数

  1. n=int(input())
  2. a=[int(i) for i in input().split()]
  3. a=[0]+a
  4. s=0
  5. for i in a:s+=i
  6. print("%.2f"%(s/n),end=' ')
  7. m={}
  8. maxv=0
  9. pos=0
  10. for i in a:
  11. m[i]=m.get(i,0)+1
  12. if m[i]>maxv:
  13. maxv=m[i]
  14. pos=i
  15. print(pos,end=' ')
  16. a.sort()
  17. if n%2==0:
  18. print("%.1f"%((a[n//2]+a[n//2+1])/2))
  19. else:
  20. print("%.1f"%(a[n//2+1]))

章节7 字符串

统计数字字符个数

  1. s=input()
  2. ans=0
  3. for i in s:
  4. if i>='0' and i<='9':
  5. ans+=1
  6. print(ans)

数字和

  1. n=int(input())
  2. s=0
  3. while n!=0:
  4. s+=n%10
  5. n//=10
  6. print(s)

大小写转换

  1. s=input()
  2. ret=""
  3. for x in s:
  4. if ord(x)>=ord('A') and ord(x)<=ord('Z'):
  5. ret=ret+chr(ord(x)-ord('A')+ord('a'))
  6. elif ord(x)>=ord('a') and ord(x)<=ord('z'):
  7. ret=ret+chr(ord(x)-ord('a')+ord('A'))
  8. else:
  9. ret+=x
  10. print(ret)

扫描识别

  1. s=input()
  2. ret=""
  3. for x in s:
  4. d=ord(x)
  5. if d==ord('O'):ret+='0'
  6. elif d==ord('l'):ret+='1'
  7. elif d==ord('Z'):ret+='2'
  8. elif d==ord('S'):ret+='5'
  9. elif d==ord('b'):ret+='6'
  10. elif d==ord('B'):ret+='8'
  11. elif d==ord('q'):ret+='9'
  12. else:ret+=x
  13. print(ret)

电报文字

  1. s=input()
  2. ss=""
  3. for x in s:
  4. if x.islower():
  5. ss+=chr((ord(x)-ord('a')+1)%26+ord('a'))
  6. else:
  7. ss+=x
  8. print(ss)

字符串压缩

  1. s=input()
  2. n=len(s)
  3. s+=" "
  4. ss=""
  5. i=0
  6. while i<n:
  7. j=i
  8. while s[j+1]==s[j]:j+=1
  9. num=j-i+1
  10. if num==1:ss+=s[j]
  11. else:
  12. while num:
  13. ss+=chr(num+ord('0'))
  14. num//=10
  15. ss+=s[j]
  16. i=j+1
  17. print(ss)

破译邮件

  1. def deal(s):
  2. i=0
  3. while i<len(s):
  4. if s[i]=='-':i+=1
  5. elif s[i]=='#':
  6. print(" ",end='')
  7. i+=1
  8. elif s[i].isdigit():
  9. tmp=0
  10. while i<len(s) and s[i].isdigit():
  11. tmp=tmp*10+ord(s[i])-ord('0')
  12. i+=1
  13. tmp-=1
  14. print(chr(tmp+ord('A')),end='')
  15. print()
  16. n=int(input())
  17. for _ in range(0,n):
  18. s=input()
  19. deal(s)

判断是否构成回文

  1. s=input()
  2. s=s[0:(len(s)-1)]
  3. ss=reversed(list(s))
  4. if list(s)==list(ss):
  5. print("TRUE")
  6. else:
  7. print("FALSE")

砳砳的图形

  1. s=[]
  2. cnt=[]
  3. for i in range(4):
  4. s.append(input())
  5. for i in range(30):
  6. cnt.append(0)
  7. for i in range(4):
  8. for j in s[i]:
  9. if not j.isupper():
  10. continue
  11. cnt[ord(j)-ord('A')]+=1
  12. for i in range(max(cnt),0,-1):
  13. __buff=''
  14. for j in range(26):
  15. if cnt[j]>=i:
  16. print(__buff,end='')
  17. print('*',end='')
  18. __buff=''
  19. else:
  20. __buff+=' '
  21. __buff+=' '
  22. print()
  23. for i in range(26):
  24. print(chr(i+ord('A')),end='')
  25. if i!=25:
  26. print(' ',end='')

奇偶位互换

  1. n=int(input())
  2. for _ in range(0,n):
  3. s=input()
  4. ss=""
  5. for i in range(0,len(s)):
  6. ss+=s[i^1]
  7. print(ss)

章节8 字典dict

统计数字字符个数

  1. s=input()
  2. ans=0
  3. for i in s:
  4. if i>='0' and i<='9':
  5. ans+=1
  6. print(ans)

火柴棒等式(简版)

  1. s=input()
  2. d={'0':6,'1':2,'2':5,'3':5,'4':4,'5':5,'6':6,'7':3,'8':7,'9':6,'+':2,'=':2}
  3. ans=0
  4. for i in s:
  5. ans+=d[i]
  6. print(ans)

扫描识别

  1. s=input()
  2. ret=""
  3. for x in s:
  4. d=ord(x)
  5. if d==ord('O'):ret+='0'
  6. elif d==ord('l'):ret+='1'
  7. elif d==ord('Z'):ret+='2'
  8. elif d==ord('S'):ret+='5'
  9. elif d==ord('b'):ret+='6'
  10. elif d==ord('B'):ret+='8'
  11. elif d==ord('q'):ret+='9'
  12. else:ret+=x
  13. print(ret)

小 X 与机器人 2 (sihuo)

  1. x,y=list(),list()
  2. s1,s2,t=int(),int(),int()
  3. x.append(-1000)
  4. y.append(-1000)
  5. for i in range(1,5):
  6. a,b=map(int,input().split())
  7. x.append(a)
  8. y.append(b)
  9. x.sort()
  10. y.sort()
  11. t=1
  12. if ((x[1]==x[2])and(x[3]==x[2])and(x[3]==x[4])or(y[1]==y[2])and(y[3]==y[2])and(y[3]==y[4])):
  13. print('zhisi')
  14. exit(0)
  15. for i in range(1,4):
  16. for j in range(i+1,5):
  17. if (x[i]==x[j]):
  18. s1+=1;
  19. if (y[i]==y[j]):
  20. s2+=1;
  21. if ((s1==2)and(s2==2)):
  22. print('fangsi')
  23. exit(0)
  24. if(s1==3):
  25. for i in range(1,4):
  26. if (y[i]==y[i+1]):
  27. if (i==2):
  28. print('dingsi')
  29. exit(0)
  30. else:
  31. print('qusi')
  32. exit(0)
  33. if (s2==3):
  34. for i in range(1,4):
  35. if (x[i]==x[i+1]):
  36. if (i==2):
  37. print('dingsi')
  38. exit(0)
  39. else:
  40. print('qusi')
  41. exit(0)
  42. if ((s1==1)or(s2==1)):
  43. print('wansi')

章节9 自定义函数

求正整数2和n之间的完全数

  1. def perfect(x):
  2. ans=1
  3. for i in range(2, x//2+1):
  4. if x % i == 0:
  5. ans += i
  6. return ans == x
  7. n= int(input())
  8. for i in range(2, n+1):
  9. if perfect(i):
  10. print(i)

素数个数

  1. p = [0]*50010
  2. n = int(input())
  3. ans = 0
  4. for i in range(2,n+1):
  5. if not p[i]:
  6. ans += 1
  7. for j in range(i,n//i+1):
  8. p[i * j] = 1
  9. print(ans)

最大数max(x,y,z)

  1. def mx(a,b,c):
  2. return max(a,max(b,c))
  3. a,b,c=map(int,input().split())
  4. print("%0.3f"%(mx(a,b,c)/(mx(a+b,b,c)*max(a,b,b+c))))

绝对素数

  1. def rev(x):
  2. return x//10+x%10*10
  3. def prime(x):
  4. for i in range(2,x):
  5. if x%i==0:
  6. return 0
  7. return 1
  8. for i in range(10,100):
  9. if prime(i) and prime(rev(i)):
  10. print(i)

回文三位素数

  1. def pal(x):
  2. tmp=x
  3. xx=0
  4. while tmp:
  5. xx=xx*10+tmp%10
  6. tmp//=10
  7. return xx==x
  8. def prime(x):
  9. for i in range(2,x):
  10. if x%i==0:
  11. return 0
  12. return 1
  13. for i in range(100,1000):
  14. if pal(i) and prime(i):
  15. print(i)

哥德巴赫猜想

  1. print("""6=3+3
  2. 8=3+5
  3. 10=3+7
  4. 12=5+7
  5. 14=3+11
  6. 16=3+13
  7. 18=5+13
  8. 20=3+17
  9. 22=3+19
  10. 24=5+19
  11. 26=3+23
  12. 28=5+23
  13. 30=7+23
  14. 32=3+29
  15. 34=3+31
  16. 36=5+31
  17. 38=7+31
  18. 40=3+37
  19. 42=5+37
  20. 44=3+41
  21. 46=3+43
  22. 48=5+43
  23. 50=3+47
  24. 52=5+47
  25. 54=7+47
  26. 56=3+53
  27. 58=5+53
  28. 60=7+53
  29. 62=3+59
  30. 64=3+61
  31. 66=5+61
  32. 68=7+61
  33. 70=3+67
  34. 72=5+67
  35. 74=3+71
  36. 76=3+73
  37. 78=5+73
  38. 80=7+73
  39. 82=3+79
  40. 84=5+79
  41. 86=3+83
  42. 88=5+83
  43. 90=7+83
  44. 92=3+89
  45. 94=5+89
  46. 96=7+89
  47. 98=19+79
  48. 100=3+97""")

短信计费

  1. import math
  2. n=int(input())
  3. ans=0
  4. for i in range(0,n):
  5. x=int(input())
  6. ans+=math.ceil(x/70)
  7. print(ans/10)

甲流病人初筛

  1. def isill(s,t,b):
  2. if t>=37.5 and b:
  3. print(s)
  4. return 1
  5. return 0
  6. n=int(input())
  7. ans=0
  8. for i in range(0,n):
  9. inp=input().split()
  10. ans+=isill(inp[0],float(inp[1]),int(inp[2]))
  11. print(ans)

两个自然数M和N的最小公倍数。

  1. def gcd(x,y):
  2. if y==0: return x
  3. else: return gcd(y,x%y)
  4. n,m=map(int,input().split())
  5. print(n*m//gcd(n,m))

输出m和n范围内的完全数(完美数)

  1. a=[6,28,496,8128]
  2. m,n=map(int,input().split())
  3. for i in a:
  4. if m<=i and n>=i:
  5. print(i,end=' ')

全体集合

  1. def dis(x1,y1,x2,y2):
  2. return abs(x1-x2)+abs(y1-y2)
  3. a=[0]*1010
  4. b=[0]*1010
  5. c=[0]*1010
  6. d=[0]*1010
  7. n,m=map(int,input().split())
  8. for i in range(0,n):
  9. a[i],b[i]=map(int,input().split())
  10. for i in range(0,m):
  11. c[i],d[i]=map(int,input().split())
  12. for i in range(0,n):
  13. minv=1926081719260817
  14. minj=0
  15. for j in range(0,m):
  16. dist=dis(a[i],b[i],c[j],d[j])
  17. if dist<minv:
  18. minv=dist
  19. minj=j
  20. print(minj+1)

小 X 与机器人 2 (sihuo)

  1. x,y=list(),list()
  2. s1,s2,t=int(),int(),int()
  3. x.append(-1000)
  4. y.append(-1000)
  5. for i in range(1,5):
  6. a,b=map(int,input().split())
  7. x.append(a)
  8. y.append(b)
  9. x.sort()
  10. y.sort()
  11. t=1
  12. if ((x[1]==x[2])and(x[3]==x[2])and(x[3]==x[4])or(y[1]==y[2])and(y[3]==y[2])and(y[3]==y[4])):
  13. print('zhisi')
  14. exit(0)
  15. for i in range(1,4):
  16. for j in range(i+1,5):
  17. if (x[i]==x[j]):
  18. s1+=1;
  19. if (y[i]==y[j]):
  20. s2+=1;
  21. if ((s1==2)and(s2==2)):
  22. print('fangsi')
  23. exit(0)
  24. if(s1==3):
  25. for i in range(1,4):
  26. if (y[i]==y[i+1]):
  27. if (i==2):
  28. print('dingsi')
  29. exit(0)
  30. else:
  31. print('qusi')
  32. exit(0)
  33. if (s2==3):
  34. for i in range(1,4):
  35. if (x[i]==x[i+1]):
  36. if (i==2):
  37. print('dingsi')
  38. exit(0)
  39. else:
  40. print('qusi')
  41. exit(0)
  42. if ((s1==1)or(s2==1)):
  43. print('wansi')
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注