zoukankan      html  css  js  c++  java
  • 第二个月课堂004讲解练习题002(经典10题)

    实例1:斐波那契数列 ****
    实例2:九九乘法表 *****
    实例3:所有水仙花数 *****
    实例4:高空抛物 *****
    实例5:猴子分桃 *****
    实例6:猴子偷桃
    实例7:回文数
    实例8:阶乘求和
    实例9:分解质因数
    实例10:养 兔子

    ---------------------------------------------------

    第一题:

    斐波那契数列

    斐波那契数列(Fibonacci)最早由印度数学家Gopala提出,而第一个真正研究斐波那契数列的是意大利数学家 Leonardo Fibonacci,斐波那契数列的定义,用数学函数可表示为:

     1.递推法

    2、递归法

    ----------------------------------------------------

    第二题:九九乘法表 

    场景一:for循环
    for i in range(1,10): for j in range(1,i+1): print("%d*%d=%2d"%(j,i,j*i),end=' ') print("")
    场景二:while

    i=1
    while i<10:
    j=1
    while j<=i:
    print("%d*%d=%2d"%(j,i,j*i),end=' ')
    j+=1
    print("")
    i+=1

    -----------------------------------------------------------

     第三题:所有水仙花数 

    方法一:
    1.1for i in range(100,1000): s=str(i) one=int(s[-1]) ten=int(s[-2]) hun=int(s[-3]) if i == one**3+ten**3+hun**3: print(i)
    1.2
    for i in range(100,1000):
    s = str(i)
    if i == int(s[0])**3+int(s[1])**3+int(s[2])**3:
    print("水仙花数为:",i)
    方法二:
    num = int(input('请输入一个三位数:'))
    if num == pow(num // 100, 3) + pow(num % 10, 3) + pow(num // 10 % 10, 3):
    print("这是一个水仙花数%d" % num)
    else:
    print("这不是一个水仙花数%d" % num)
    方法三:
    for i in range(100,1000):
    baiwei=i//100
    shiwei=i%100//10
    gewei=i%10
    if i==baiwei**3+shiwei**3+gewei**3:
    print("水仙花数为:",i)

    ---------------------------------------------------------------

     第四题:高空抛物

    方法一:
    high =100. sum =100 for i in range(1,11): 循环10次 high =high/2 if i==1: sum =sum sum =sum+high*2 print('high:',high)
    方法二:
    # high=200.
    # total=100
    # for i in range(10):
    # high/=2
    # total+=high
    # print(high/2)
    # print('总长:',total)

    -----------------------------------------------------------------------

    第五题: 猴子分桃 

    五只猴子分桃。半夜,第一只猴子先起来,它把桃分成了相等的五堆,多出一只。于是,它吃掉了一个,拿走了一堆; 第二只猴子起来一看,只有四堆桃。于是把四堆合在一起,分成相等的五堆,又多出一个。于是,它也吃掉了一个,拿走了一堆;......其他几只猴子也都是 这样分的。问:这堆桃至少有多少个?

    方法:

    #本算法从最后一个猴子进行逆向推倒
    def peach(monkey=5):
        pea = 4  ##最后一个猴子分完剩余的桃子
    while 1:
            num = pea
            for i in range(monkey):
                num = num + num / 4 + 1
                if num % 1 != 0:  ##如果分出了小数则结束内层循环
    pea += 4  ##最后的桃子一定是4的整数倍
    break
            if num % 1 == 0:  ##如果是整分 则结束
    break
        return pea, num
    
    
    if __name__ == '__main__':
        pea, num = peach()
        print(pea, num)

    ------------------------------------------------------------------------

     实例6:猴子偷桃

    方法一:while

    tail = 1  #桃子剩余个数
    i = 9
    while i > 0:
        tail = (1 +  tail) * 2
        i -= 1
        print("剩余的桃子个数:%d" % tail)
    print("剩余的桃子个数:%d" % tail)
    

     方法二:

     



    ---------------------------------------------------------------------------
    实例7:回文数

    场景二:

    a = input("请输入数字: ")
    b=len(a)
    for i in range (b):
        if(a[i]==a[b-i-1]):
            c=1
        else:
            c=0
    if(c==1):
        print("这是回文数")
    else:
        print("这不是回文数")
    

      

    ---------------------------------------------------------------------------
    实例8:阶乘求和

    x = 1
    y = int(input("请输入要计算的数:"))
    for i in range(1, y + 1):
      x = x * i
    print(x)
    

      

    ---------------------------------------------------------------------------
    实例9:分解质因数

    场景一:
    
    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
    

      

    ----------------------------------------------------------------------------
    实例10:100 以内的素数

    方法一:
    for i in range(2,100): for j in range(2,i): if i%j==0: break else: print(i,end=",")

      

    ------------------------------------------------------------------------------

    11养兔子

    有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个
    月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

    month = int(input('繁殖几个月:'))
    month_1 = 1
    month_2 = 0
    month_3 = 0
    month_elder = 0
    for i in range(month):
        month_1,month_2,month_3,month_elder = month_3+month_elder,month_1,month_2,month_3+month_elder
        print("
    第%d个月共"%(i+1),month_1+month_2+month_3+month_elder,"个兔子。")
        print("其中1月兔:",month_1)
        print("其中2月兔:",month_2)
        print("其中3月兔:",month_3)
        print("其中成年兔:",month_elder)
    

      

  • 相关阅读:
    inline关键字的作用
    Qt编写websocketpp客户端
    QThreadPool线程池的开发使用
    QThreadPool线程池的使用,线程与Widget通过信号与槽的方式通信。
    1、QThreadPool线程池的使用,线程和Widget通过QMetaObject::invokeMethod交互。
    QtTest模块出现控制台的原因与方案
    定长字符数组与不定长字符数组的初始化
    C#开发中localhost与127.0.0.1本地服务器的区别
    C#树目录(treeView)的编写
    SQLite的导入导出
  • 原文地址:https://www.cnblogs.com/xiaolehua/p/14090753.html
Copyright © 2011-2022 走看看