软件测试__python题经典题讲解

实例1:斐波那契数列 **** ( )
实例2:九九乘法表 ***** ()
实例3:所有水仙花数 ***** ()
实例4:高空抛物 ***** ()
实例5:猴子分桃 *****
实例6:冒泡排序 *****()
实例7:回文数()
实例8:阶乘求和()
实例9:分解质因数()
实例10:1、2、3、4个数字组成互不相同且无重复数字的三位数?

==================================
实例1:斐波那契数列 **** ( )
定义:
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从 1963 年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。 [1]
方法1:
number=int(input(“您需要几项?”))
#第一项和第二项
n1=0
n2=1
count=2
#判断输入的值是否合法
if number<=0:
print(“请输入一个正整数”)
elif number==1:
print(“斐波那契数列:”)
print(n1)
else:
print(“斐波那契数列:”)
print(n1,",",n2,end=’,’)
while count<number:
nth=n1+n2
print(nth,end=’,’)
#更新至
n1=n2
n2=nth
count=count+1
方法2:

实例2:九九乘法表 ***** ()
方法1:
#九九乘法表 方法一:
for i in range(1, 10):
for j in range(1, i+1):
print(’{}{}={}\t’.format(j, i, ij), end=’’)
print()
#九九乘法表 方法二:
for i in range(1,10):
for j in range(1,i+1):
cfb = ji
print(j,"
",i,"=",cfb," “,”\t",end=" “)
print(” “)
实例3:所有水仙花数 ***** ()
定义:所有水仙花数 也被称为超完全不变数 自恋数 自幂数 阿姆斯特朗数
#是一个三位数 它的每个位上的数字的立方之和正好等于它本身
方法1:
x=[]
for i in range(100,1000):
a=i//100 #百位
b=i//10%10 #十位
c=i%10 #个位
if aaa+bbb+ccc==i:
x.append(i)
print(x)
方法2:
for x in range(1, 10):
a = x * x * x
for y in range(0, 10):
b = y * y * y
for z in range(0, 10):
c = z * z * z
d = a + b + c
w = ‘%d’%x + ‘%d’%y + ‘%d’%z
if d == int(w):
print( w,end=”,")
方法3:

for x in range(100,1000):
h = str(x)
b = int(h[0])
s = int(h[1])
g = int(h[2])
if x == b3 + s3 + g**3:
print(x)

实例4:高空抛物 ***** ()
方法1:
x=100
list=[]
for i in range(1,4):
if i==1:
list.append(x)
else:
list.append(x*2)
x=x/2
print(f"总距离:list={sum(list)}")
#以 f开头表示在字符串内支持大括号内的python 表达式
方法2:
a=int(input(“请输入次数:”))
g=100
f=[]
for i in range(1,a+1):
f.append(g+g/2)
g=g/2
print(sum(f)-g)
print(g)

实例5:猴子分桃 *****
方法1:
a=int(input(“猴子数量:”))
y=0
while 1:
y=y+1
if ya**a-4:
print(y)
break
方法2:
#(((((x-1)/54-1)/54-1)/54-1)/54-1)/5*4-1
Z(整数,可以被4整除),求x最小值
#求解过程
i = 0# 次数,一共5次
j = 1#每份的个数
x = 0#桃子个数
while i < 5:
x = 4 * j #剩余x可以被4整除
for i in range(0,5) :
if(x%4 != 0) :#每次剩余x是否能被4整除
break
else:
i += 1
x = (x/4) * 5 +1#倒推x
j += 1

print(x)

实例6:冒泡排序 *****()
定义:冒泡排序是一种简单的排序算法,它也是一种稳定排序算法。其实现原理是重复扫描待排序序列,并比较每一对相邻的元素,当该对元素顺序不正确时进行交换。一直重复这个过程,直到没有任何两个相邻元素可以交换,就表明完成了排序。
方法1:
list = [1, 15, 40, 27, 32, 22, 23, 45, 15, 5, 56, 21]
def bubble_sort(list):
for i in range(1, len(list)):
for j in range(0, len(list)-i):
if list[j] > list[j + 1]:
(list[j], list[j + 1]) = (list[j + 1], list[j])
return list
print(bubble_sort(list))
方法2:

实例7:回文数()
定义:回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
方法1:
str1= input(“输入需验证的整数:”)
str2=str1[::-1]
if str2 == str1:
print(str1+“是回文数” )
else:
print(str1+“不是回文数”)
方法二:

实例8:阶乘求和()
方法1:
a = 1
b = int(input(“请输入要计算的数:”))
for i in range(1, b + 1):
a = a * i
print(a)

实例9:分解质因数()
定义:
#质因数(素因数或质因子)在数论里是指能整除给定正整数的质数。除了1以外,两个没有其他共同质因子的正整数称为互质。因为1没有质因子,1与任何正整数(包括1本身)都是互质。正整数的因数分解可将正整数表示为一连串的质因子相乘,质因子如重复可以用指数表示。根据算术基本定理,任何正整数皆有独一无二的质因子分解式 [1] 。只有一个质因子的正整数为质数。
#每个合数都可以写成几个质数(也可称为素数)相乘的形式 [2] ,这几个质数就都叫做这个合数的质因数。如果一个质数是某个数的因数,那么就说这个质数是这个数的质因数;而这个因数一定是一个质数。
方法1:
num=int(input(‘输入一个数:’))
num1=num
zs=[]
m=0
for i in range(2,num+1):
if i == 2:
zs.append(i)
else:
for x in range(2,i):
if i%x == 0:
break
if x == i-1:
m=1
if m ==1:
zs.append(i)
m=0
num_zs=[]
for i in range(len(zs)):
if num % zs[i]0:
num_zs.append(zs[i])
print(num_zs)
num_zs1=[]
o=0
while(o
0):
for i in num_zs:
if num %i 0 :
num = num /i
num_zs1.append(i)
if num 1:
o=1
num_zs2=sorted(num_zs1,reverse=False)
print(num_zs2)
i=len(num_zs2)
num_zs3=’’
for x in range(i):
if x!=i-1:
num_zs3=num_zs3+str(num_zs2[x])+’*’
else:
num_zs3=num_zs3+str(num_zs2[x])
print(str(num1)+’=’+num_zs3)
方法2:
n=int(input(“请输入需要分解的数字:”))
print("{}=".format(n),end=’’)
while n>1:
for i in range(2,n+1):
if n%i
0:
n=int(n/i)
if n
1:
print(i)
else:
print("{}*".format(i),end=’’)
break #分解质因数

方法3:
n=int(input(‘请输入整数:’))
num=n #使用num变量保留输入的原始值
m=[]
while n!=1: #n1时,已分解到最后一个质因数
for i in range(2,int(n+1)):
if n%i
0:
m.append(str(i))#将i转化为字符串再追加到列表中,便于使用join函数进行输出
n=n/i
if n==1:
pass
break
print(num,’=’,’*’.join(m))

实例10:1、2、3、4个数字组成互不相同且无重复数字的三位数?
方法1:
n=0
for a in range(1,5):
for b in range(1,5):
for c in range(1,5):
if( a != c ) and (a != b) and (b != c):
print(a,b,c)
n+=1
print(“总次数:”,n)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多测师软件测试培训师肖sir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值