美文网首页
算法入门(1)

算法入门(1)

作者: 梦san国 | 来源:发表于2019-12-18 17:21 被阅读0次

** 以下都是通过枚举法解决问题的。其实枚举法的本质就是把所有问题可能的结果都尝试一边,再通过某种条件将错误的结果筛选出去,留下的便是正确的结果。 **

  1. 输出一个直角三角形,符合 注释中的那个三角形格式。
# 输出一个个三角形
# 输入 5 输出的是一个五行的三角形
# 第一行 1个* 第二行 2个 ... 第五行五个
# 第一步 我们需要一层for循环控制输出 n行 *
# 第二步 我们需要一层for循环控制每一层输出*的个数 1,2,3,4,5
# for i in range(n):
#   for j in range(i+1):
# *
# **
# ***
# ****
# *****
def out_angle1(n):
    for i in range(n):
        for j in range(i+1):
            print("*",end="")
        print()
  1. 以下根据案例1改变的输出三角形,可以根据1尝试写一下。
#     *
#    **
#   ***
#  ****
# *****
def out_angle2(n):
    for i in range(n):
        for j in range(n-i-1):
            print(" ",end="")
        for j in range(n - i,n+1):
            print("*", end="")

        print()
#     *
#    ***
#   *****
#  *******
# *********
def out_angle3(n):
    for i in range(n):
        for j in range(n-i-1):
            print(" ",end="")
        for k in range(2*(i+1)-1):
            print("*",end="")
  1. 斐波那契数列:1,1,2,3,5,8,13,21,34,55,......。斐波那契额数列的规律是 前两个为1,从第三个开始的每一个数为前一个数与前一个数的前一个数字的和。比如:第三个数2为第二个数和第一个数的和。第四个数3为第三个数与第二个数的和。以下为递归和非递归的两种求解方式。
# fbnq 递归
def fib(n):
    if n == 1 or n == 2:
        return 1
    else:
        return fib(n-1)+fib(n-2)
# 非递归
def fib_n(n):
    result = 0
    a = 0
    b = 0
    for i in range(n+1):
        if i<=2:
            result = 1
            a = 1
            b = 1
        else:
            result = a+b
            b,a = result,b
    return result

4.求前100个素数和,素数是只能被1和本身整除的数。1不是素数。


# 判断 100以内素数 并进行求和

def is_prime(n):
    result = 0
    for i in range(2,n):
        is_pr = True
        diversor = int(i/2)+1
        # print(diversor)
        if i>2:
            for j in range(2,diversor):
                if i %j == 0:
                    is_pr = False
                    break
        if is_pr == True:
            result = result +i
            print(i,end= " ")
    return  result

def is_prime_2(n):
    result = 0
    prime_list = []
    for i in range(2,n):
        is_pr = True
        if i %2 == 0 and i!=2:
            is_pr = False
        else:
            for j in prime_list:

                if i %j == 0:
                    is_pr = False
                    break
        if is_pr == True:
            result = result +i
            prime_list .append(i)
            print(i,end= " ")
    return  result

相关文章

  • 1、算法入门

    1、百钱白鸡 我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买...

  • 算法入门(1)

    ** 以下都是通过枚举法解决问题的。其实枚举法的本质就是把所有问题可能的结果都尝试一边,再通过某种条件将错误的结果...

  • 学习路线规划

    目前有两本书,《算法竞赛入门经典》和《算法竞赛进阶指南》。根据书名应该先看《算法竞赛入门经典》( 《算法竞赛入门经...

  • Python 入门之 内置模块 -- hashlib模块

    Python 入门之 内置模块 -- hashlib模块 1、hashlib 摘要算法,加密算法 (1)主要用途:...

  • 经典排序算法总结

    经典排序算法集锦 冒泡法 排序算法入门之冒泡排序 排序算法入门之冒泡排序优化

  • 自学资源整理--干货

    算法学习 书籍: 1、算法图解 Aditya Bhargava (作者) 袁国忠(译者) ——在非常适合入门,简单...

  • 十秒钟入门C语言—算法初窥

    // main.c// 算法入门1//// Created by tarena on 15/5/28.// ...

  • 算法与数据结构」整理推荐书单2019-06-29

    从入门到进阶吐血整理推荐书单 1,《图解算法》 编得比较走心,适合饭后翻翻看看的一本入门算法书! 2,《Probl...

  • 推荐算法入门

    推荐算法入门 1. 推荐算法知识架构 ​ 推荐算法有很多种,大体上可以将推荐算法分为以下几种: 协同过滤推荐算...

  • 《算法竞赛入门经典(第2版) 算法艺术与信息学竞赛》PDF高清完

    《算法竞赛入门经典(第2版) 算法艺术与信息学竞赛》PDF高清完整版-免费下载 《算法竞赛入门经典(第2版) 算法...

网友评论

      本文标题:算法入门(1)

      本文链接:https://www.haomeiwen.com/subject/izvunctx.html