稍微困难
1. 求斐波那契数 中第n个数的值:1,1,2,3,5,8,13,21,34....
使用while循环
num_n1 = 1
num_n2 = 1
n = int(input("请输入第n个数是多少:"))
if n < 3:
print("斐波那契数列中第%d个数的值是: 1" % (n))
else:
m = 1
while m < (n-1):
num = num_n1 + num_n2
num_n1, num_n2 = num, num_n1
m += 1
print("斐波那契数列中第%d个数的值是: %d" % (n, num))
# 使用for循环
n1 = 1
n2 = 1
n = int(input("请输入第n个数是多少:"))
if n < 3:
print("斐波那契数列中第%d个数的值是: 1" % (n))
else:
for m in range(1, n - 1):
num = n1 + n2
n1, n2 = num, n1
print("斐波那契数列中第%d个数的值是: %d" % (n, num))
2. 判断101-200之间有多少个素数,并输出所有素数。判断素数的 法:
个数分别除2到sqrt(这个数),如果能被整除,则表明此数 是素数,反之是素数
# method1
n = 0
for num in range(101, 201):
count = 0
for divisor in range(2, int(num**0.5 + 1)):
if num % divisor == 0:
count += 1
if count == 0:
print(num)
n += 1
print("一共有%d个素数" % (n))
# method2 +break
n = 0
for num in range(101, 201):
for divisor in range(2, int(num**0.5) + 1):
if num % divisor == 0:
break
else:
print(num)
n += 1
print("一共有%d个素数" % (n))
3. 打印出所有的 仙花数,所谓 仙花数是指 个三位数,其各位数字 和等于该数本身。 如:153是个 仙花数,因为153 = 1^3 + 5^3 + 3^3
#for循环
n = 0
for num in range(100, 1000):
ge_wei = num % 10
shi_wei = (num // 10) % 10
bai_wei = num // 100
if num == ge_wei**3 + shi_wei**3 + bai_wei**3:
print(num)
n += 1
print("一共有%d个水仙花数" % (n))
# while循环
num = 100
n = 0
while num < 1000:
ge_wei = num % 10
shi_wei = (num // 10) % 10
bai_wei = num // 100
if num == ge_wei ** 3 + shi_wei ** 3 + bai_wei ** 3:
print(num)
n += 1
num += 1
print("一共有%d个水仙花数" % (n))
4. 有 分数序 :2/1,3/2,5/3,8/5,13/8,21/13...求出这个数 的第n个分数
# while循环
fz = 1
fm = 1
n = int(input("请输入你需要查看第几个分数:"))
m = 1
while m <= n:
fz, fm = fz + fm, fz
m += 1
print("这个分数是%d/%d" % (fz, fm))
# for循环
fz = 1
fm = 1
n = int(input("请输入你需要查看第几个分数:"))
for m in range(1, n + 1):
fz, fm = fz + fm, fz
print("这个分数是%d/%d" % (fz, fm))
5. 给 个正整数,要求:1、求它是几位数 2.逆序打印出各位数字
# while循环
num = int(input("请输入一个正整数:"))
n = 0
while num != 0:
print(num % 10)
n += 1
num //= 10
print("这是个{}位数".format(n))
# 字符串
num =str(input("请输入一个正整数:"))
print("这是个{}位数".format(len(num)), "倒序为" + num[::-1])