欢迎使用CSDN-markdown编辑器

Python编写杨辉三角

本文将介绍两种方法打印杨辉三角,一种使用通用的方法,一种使用Python生成器方法。

方法1:通用方法

代码块语法遵循标准markdown代码,例如:
def factor(n):
”’
循环求阶乘
”’
sum = 1
index = 1

if n == 0:
    return 1

while index <= n:
    sum *= index;
    index += 1

return sum

def factorial(n, k):
”’
求Cnk
”’
return factor(n) // (factor(k) * factor(n - k))

def pascalTriangle(line):
”’
:param line:杨辉三角的行数
:return:None
”’

outIndex = 0
inIndex = 0
while outIndex <= line - 1:

    #计算空格
    while inIndex <= line - 1 - outIndex:
        print(" ", end="")
        inIndex += 1

    #计算数值
    inIndex = 0
    while inIndex <= outIndex:
        print(factorial(outIndex, inIndex), end=" ")
        inIndex += 1
    outIndex += 1
    inIndex = 0

    #打印换行
    print("\n")

方法2:生成器方法

def pascalTriangle_generator(line):
”’
:param line:杨辉三角的行数
:return:None
”’

pascalLine = []
outIndex = 0
inIndex = 0
while outIndex <= line - 1:

    #计算空格
    while inIndex <= line - 1 - outIndex:
        pascalLine.append(" ")
        inIndex += 1

    #计算数值
    inIndex = 0
    while inIndex <= outIndex:
        pascalLine.extend([factorial(outIndex, inIndex), " "])
        inIndex += 1
    outIndex += 1
    inIndex = 0

    #打印换行
    yield pascalLine
    pascalLine = []

for line in pascalTriangle_generator(6):
index = 0
while index < len(line):
if len(str(line[index])):
print(line[index], end=”“)
print(” “, end=”“)
index += 1
print(“\n”)

两种方法使用相同的求组合数值算法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值