找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3389|回复: 0

[求助] 杨辉三角输出小白求助

1

主题

3

帖子

3

积分

贫民

积分
3
c_m_j 发表于 2020-7-26 19:10:59 | 显示全部楼层 |阅读模式
1威望
附件的代码为杨辉三角,问下为什么打印前后会多处0来。

#coding='utf-8'
class operator:
    @classmethod #计算每一行杨辉三角
    def sim(cls,a):
        c = [0 for i in range(len(a) + 1)]
        a.append(0)
        a.insert(0, 0)
        for i in range(len(a) - 1):
            c = a + a[i + 1]
        #print(c)
        return c

    @classmethod #储存杨辉三角数据
    def cal(cls,n):
        s = ['0' for i in range(n)]
        i9 = [1,]
        for i in range(n):
            s = i9
            i += 1
            i9 = cls.sim(i9)
        return s
    @classmethod
    def dis(cls,n): #显示设置
        n1 = len(n)
        n2 = len(''.join([i1 + ' ' for i1 in map(str, n[n1 - 1])]))
        for i in range(n1):
            c = ''.join([i1 + ' ' for i1 in map(str, n)])
            print(c.center(n2))



try:
    n = int(input('请输入杨辉三角显示行数:'))
    # print(cal(n))
    # print(sim([1,]))
    if n >= 1:
        n = int(n)
        c = operator.cal(n)
        #for i in range(len(c)):
        #   c=c[1:-1]
        print(operator.dis(c))
    else:
        print('请输入大于1的整数')
except ValueError:
    print('请输入大于1的整数')

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表