2018-10-08 Day 05 基础作业修改版

稍微困难

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])

你可能感兴趣的:(2018-10-08 Day 05 基础作业修改版)