1. 求斐波那契数列中第n个数的值:(0),1,1,2,3,5,8,13,21,34, 55...
规律: 从第三个数开始,后面每个数结果都是前两个数的和
n = 10 # 表示最终要求第几个数的值
# n1 + n2 = current
n1 = 0
n2 = 1
current = 1
# 从第2个数开始求, x表示当前是第几个数
for x in range(2, n+1):
# 根据前两个数的值,计算出当前值
current = n1 + n2
# 挪一次, 为了下次循环的时候求下一个值
n1 = n2
n2 = current
print(current)
2. 判断101-200之间有多少个素数,并输出所有素数。
什么是素数(质数): 除了1和它本身,不能被其他的数整除,这种数就是素数
先将101-200之间所有的整除,一个一个的取出来
方法一:
count = 0
for num in range(101, 201):
# 判断是否是素数
# x的范围是2~num1
for x in range(2, num):
if num % x == 0:
# print(num, '不是素数')
# 只要在2~num-1之间找到一个能被num整除的数,就说明num不是素数
break
else:
count += 1
print(num, '是素数')
print('101-200之间素数有:',count)
方法二:
for num in range(101, 201):
isprime = True # 取一个数就假设这个数是素数
for x in range(2, num):
if num % x == 0:
isprime = False # 当在2~num-1之间找到了一个能够被num整除的数,就说明假设不成立
break
# 循环结束再判断之前的假设是否成立
if isprime == True:
print(num,'是素数')
3. 打印出所有的⽔水仙花数,所谓⽔水仙花数是指一个三位数,其各位数字⽴立⽅方和等于该数本身。例例如:153是
# 一个⽔水仙花数,因为 153 = 1^3 + 5^3 + 3^3
for num in range(100, 1000):
ge_wei = num % 10
shi_wei = num // 10 % 10
bai_wei = num // 100
if ge_wei ** 3 + shi_wei ** 3 + bai_wei ** 3 == num:
print(num)
#4. 有⼀一分数序列列:(1/1),2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列列的第20个分数
后面的分数的分母 == 前一个分数的分子 后面的分数的分子 = 前一个分数的分母 + 分子
fen_zi = 1
fen_mu = 1
for x in range(1, 10+1):
temp = fen_zi
fen_zi = fen_mu + fen_zi
fen_mu = temp
fen_zi, fen_mu = fen_mu + fen_zi, fen_zi
print(fen_zi, '/', fen_mu)
5.给⼀一个正整数,要求:1、求它是⼏几位数 2.逆序打印出各位数字
# 234 23 2 0
# 1234 123 12 1 0
# 规律: 一个整数是几位数,就看这个数整除10,除几次后会变成0
num = int(input('请输入一个整数:'))
num2 = num
length = 0
while True:
num //= 10
length += 1
if num == 0:
break
print(length)
# 1234 4(123) 3(12) 2(1) 1(0)
for _ in range(length):
print(num2%10,end='')
num2 //= 10
print()
方法二
num=12345
num2=num
cont=0
for _ in range(100):
num //= 10
cont+=1
if num==0:
print(cont)
break
for _ in range(cont):
print(num2%10,end='')
num2 //= 10
print()
#while 循环:
while True:
print(num2%10, end='')
num2//=10
if num2<1:
break