C++打印杨辉三角

  简单就不多说了。这是下三角形的杨辉三角。

//
//  main.cpp
//  yhsj
//
//  Created by MadMarical on 15/11/27.
//  Copyright (c) 2015年 com. All rights reserved.
//

#include <iostream>

using namespace std;

const int maxn = 100;
int angle[maxn][maxn];

int main(int argc, const char * argv[])
{
    int inp;
    cin>>inp;
    memset(angle, 0, sizeof(angle));
    
    for (int i = 0; i != inp; ++ i)
    {
        angle[i][0] = 1;
        angle[i][i] = 1;
    }
    
    for (int i = 2; i != inp; ++ i)
    {
        for (int j = 1; j != inp; ++j)
        {
            angle[i][j] = angle[i - 1][j - 1] + angle[i - 1][j];
        }
    }

    for (int i = 0; i != inp; ++ i)
    {
        for (int j = 0; j != inp; ++ j)
        {
            if (angle[i][j] != 0)
            {
                cout<<angle[i][j]<<" ";
            }
        }
        cout<<endl;
    }
    return 0;
}

反思:

1.如何打印一个等腰的杨辉三角呢,借助C可以用。只用C++的话,输入输出的格式控制还有问题,但是我貌似在哪里看到过一个经典的解法,搞忘记了。回去得翻书了。   

for(h=0;h<10;h++)
    {   
    for(j=0;j<10-h;j++)

  {

     printf("  "); 
        for(j=0;j<=h;j++)
        {
            printf("%3d ",i[h][j]);
        }

  }
        printf("\n");
    }
View Code

 

2.下标的控制绝对要精准。。。

 

posted on 2015-11-27 15:17  MMac  阅读(842)  评论(0编辑  收藏  举报

导航