Python_04_tigao_honework

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一章数和数的运算 一概念 (一)整数 1整数的意义 自然数和0都是整数。 2自然数 我们在数物体的时候,用来表示...
    meychang阅读 2,656评论 0 5
  • 8月22日-----字符串相关 2-3 个性化消息: 将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消...
    future_d180阅读 1,001评论 0 1
  • 小学奥数其实很简单,以下是这六个部分的知识点! 1 第一部分(知识点1-6) 2、年龄问题的三个基本特征: ①两个...
    小一哥阅读 1,365评论 0 3
  • 1.美妞上午把自己房间收拾得干干净净,书籍分类摆放。 妞:老妈,你赶紧来看看,你一定会“哇”! 我:“哇哇哇哇哇哇...
    E姐小酒窝阅读 187评论 0 2
  • 玉妆粉带沉默了白天黑夜 燃烧的火焰中青铜坠地 尖刀刺破洪水滔天冉冉 在鼾声中埋葬冬天 在坚硬的空气中残喘 黄白交接...
    伞晒阅读 289评论 0 2