Python基础算法训练——函数与递归(46~50)
46. 数字统计
【题目描述】
请统计某个给定范围 [L,R] 的所有整数中,数字 7 出现的次数。
比如给定范围 [60,80] 中,7一共出现12次。分别是67,77的个位,以及 70∼79 的十位。
【输入】
一行两个数 L,R 表示范围,用空格分隔。
【输出】
一个整数表示数字 7 出现的次数。
【输入样例】
60 80
【输出样例】
12
l,r=map(int,input().split())
ans=0
for i in range(l,r+1):
t=i
while t:
if t%10==7:
ans+=1
t//=10
print(ans)
47. 哥德巴赫猜想
【题目描述】
哥德巴赫猜想是近代三大数学难题之一,即任何一个大于2的偶数,都可表示成两个素数之和。如4=2+2,6=3+3,8=3+5,10=3+7。
请定义一个判断素数的函数,利用它验证4∼n之间的偶数都能够分解为两个素数之和,其中n≥4 。
【输入】
一行一个整数,为n。
【输出】
输出若干行,每行输出一个等式,表示4∼n之间的偶数被分解为两个素数之和,若偶数不符合该整式,则输出“验证失败!”。
【输入样例】
10
【输出样例】
4=2+2
6=3+3
8=3+5
10=3+7
import math
def is_prim(n):
if n<2:
return False
for i in range(2,int(math.sqrt(n))+1):
if n%i==0:
return False
return True
n=int(input())
for i in range(4,n+1,2):
for j in range(2,i//2+1):
if is_prim(j) and is_prim(i-j):
print("{}={}+{}".format(i,j,i-j))
break
48. 第N个智慧数
【题目描述】
一个正整数如果能表示成两个正整数的平方差,则称这个数为一个“智慧数”,比如16就等于5的平方减去3的平方,所以16就是一个智慧数,从1开始的自然数列中,将“智慧数"从小到大编号为1,2,3,...,n。现输入一个正整数n,输出第n个“智慧数”。
【输入】
输入仅包含一个正整数n (1≤n≤100)。
【输出】
输出仅包含一个正整数,表示编号为n的“智慧数”。
【输入样例】
3
【输出样例】
7
ls=[0]*100000
k=0
for i in range(2,251):
for j in range(i-1,0,-1):
ls[k]=i*i-j*j
k+=1
ls_=sorted(list(set(ls[:k])))
#print(k,ls_)
n=int(input())
print(ls_[n-1])
49. 通力合作
【题目描述】
利用递归算法,试编一程序,输出1∼100的自然数。
【输入】
无
【输出】
一行若干个整数,为1∼100的自然数,每个整数占5个字符(右对齐)。
【输入样例】
无
【输出样例】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100文章来源:https://www.toymoban.com/news/detail-611880.html
def f(x):
if x==0:
return
f(x-1)
print("%5d"%x,end="")
f(100)
50. 转进制
【题目描述】
用递归算法将一个十进制数X转换成任意进制数M(M≤16)。
【输入】
一行两个数,第一个十进制数X,第二个为进制M。
【输出】
输出结果。
【输入样例】
31 16
【输出样例】
1F文章来源地址https://www.toymoban.com/news/detail-611880.html
def ten_to_m(x,m):
if x==0:
return
ten_to_m(x//m, m)
if x%m>9:
print(chr(x%m-10+ord('A')),end='')
else :
print(x%m,end="")
x,m=map(int,input().split())
ten_to_m(x,m)
到了这里,关于Python基础算法训练——函数与递归(46~50)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!