基础数学算法

2022/1/4 1:08:53

本文主要是介绍基础数学算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

基础数学

  • 等差数列
  • 求最大公约(因)数
  • 求最小公倍数

等差数列

等差数列 an 的通项公式:an = a1 + ( n - 1) *d。其中,d为公差,a1为起始项,n为第n项。

等差数列求和公式:前n项和公式为:Sn = na1 + n(n - 1) * d / 2

题目:等差数列 2,5,8,11,14。。。。(从 2 开始的 3 为公差的等差数列),输出求等差数列前n项和。

n = int(input())
print(int(n*2+n*(n-1)*3/2))

求最大公约(因)数

辗转相除法求最大公约数:
在这里插入图片描述
在这里插入图片描述

# 辗转相除法求最大公约数
a = 20
b = 12

def gcd(m, n):
	#  递归结束条件:如果余数为0,则返回n
    if m % n == 0:
        return n
	# 将规模缩小:递归求n和余数的最大公约数
    return gcd(n, m % n)

gcd(a, b)

求最小公倍数

算法:(a,b最小公倍数) = a*b / (a,b最大公约数)

# 使用辗转相除法求最大公约数,然后再求最小公倍数

expression = input().split(' ')
a = int(expression[0])
b = int(expression[1])

# 将a设置为a,b中较大的数
if a < b:
    a, b = b, a

# 辗转相除法求最大公约数
def gcd(m, n):
    if m % n == 0:
        return n

    return gcd(n, m % n)

print(int(a*b / gcd(a, b)))


这篇关于基础数学算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程