一个简单算法的不同处理方式

”’ ————-
要输出如下图形:
      * 
    * # * 
  * # * # * 
* # * # * # * 

实现这个简单的输出有多种方法,下面比较两个实现方法。
下面的两段代码都能实现这个字符图形输出,但是这两段代码却反映了不同的思维方式。
第一种方式是根据每个点的位置特征决定输出内容,这是最直接也是最原始的思维方式;
第二种是先将图形特征进行提炼,将行首空格看做一个整体,将一个 * 和 # 看做一个整体。对于第二种方式,处理逻辑就显得清晰明了,先输出空白,再输出*#图形组合,当然最后会多一个#,所以还要加一条判断语句对最后一次输出做处理。
—————”’
def print_start0(n):
    for i in xrange(0,n):
        for j in xrange(0,2*n-1):
            if j < n-(i+1):
                print ‘ ‘,
            elif j > (n – 1 + i):
                pass
            else:
                if (i+j)%2 == 1:
                    print ‘*’,
                else:
                    print ‘#’,
        print ”
def print_start1(n):
    for i in xrange(0,n):
        for j in xrange(0,n-(i+1)):
            print ‘ ‘,
        for j in xrange(n-(i+1),n):
            if (j < (n-1)):
                print ‘*’,
                print ‘#’,
            else:
                print ‘*’,
        print ”
print_start0(4)
print_start1(4)
来自为知笔记(Wiz)
分享到: 更多
版权申明:

本站保留所有原创文章的版权,本站地址:奔跑的博客[http://www.elecbench.com]

原创文章转载时请注明出处,并添加文章所在页面的链接:http://www.elecbench.com/%e4%b8%80%e4%b8%aa%e7%ae%80%e5%8d%95%e7%ae%97%e6%b3%95%e7%9a%84%e4%b8%8d%e5%90%8c%e5%a4%84%e7%90%86%e6%96%b9%e5%bc%8f/

本站所有 2010年3月4日 以后发表、未标明为“转载”的文章均是本站原创。

发表评论


(设置自己的个性头像)

*

申请属于你的免费顶级域名