码迷,mamicode.com
首页 > 其他好文 > 详细

打印杨辉三角形

时间:2017-07-09 19:32:58      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:locate   int   ++i   print   n+1   mod   三角形   代码   ast   

以等腰三角形形式打印杨辉三角。

比如:

             1
          1    1
        1    2    1
     1    3    3    1
   1    4    6    4    1


代码例如以下:

void print_line(int * line, int ln, int line_width)
{
         int wscount = (line_width-((ln+1)*4+ln))/2;
         for(int i=0; i<wscount; ++i)
                printf( " ");
         for(int i=0; i<ln; ++i)
        {
                printf( "%4d ", line[i]);
        }
        printf( "%4d\n", line[ln]);
}

// calculate next line of yanghui triangle
void next_line(int * line, int ln)
{
         int last_col = line[0];
         for(int col=1; col<=ln; ++col)
        {
                 int tmp = line[col];
                line[col] += last_col;
                last_col = tmp;
        }
        line[ln+1] = 1;
}

void print_yanghui(int n)
{
         if(n<=0)
                 return;
         // allocate one more int to avoid that next_line function writes after the end.
         int* line = new int[n+1];
        line[0] = 1;
         int line_width = n*4+(n-1);
         for(int ln=0; ln<n; ++ln)
        {
                print_line(line, ln, line_width);
                next_line(line, ln);
        }
         delete []line;
}


int main () {
         for(int i=0; i<12; ++i)
                print_yanghui(i);
         return 0;
}

打印杨辉三角形

标签:locate   int   ++i   print   n+1   mod   三角形   代码   ast   

原文地址:http://www.cnblogs.com/lxjshuju/p/7142357.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!