金字塔

#include<iostream>
using namespace std;
int main()
{
  int i,j,k,p,q;
  cout<<"输入三角的高度:";
  cin>>k;
  for(i=0;i<k;i++)
  {
    for(p=0;p<k-i;p++)
     cout<<" ";
    cout<<"x";
    for(j=0;j<=2*i-1;j++)
    cout<<"x";
    //if(i)
    //cout<<"*";
    cout<<endl;
  }
 return 0;
}

下面是自己想的方法,虽然有点麻烦,但是也能实现,不过就是可用性可能稍差,毕竟自己思考的,记录下来:

#include<iostream>
using namespace std;
int main()
{
 int i,m,j,n;
 cout<<"输入三角的高度:";
 cin>>n;
 for(i=1;i<=80*n;i++)
 {
   m=i/80; //行数-1
   if(i==79*m+41)  //如果到达80*m+41-m的位置(m为行数-1;41为第一行x的位置),就开始输出x
   {
      for(j=79*m+42;j<=(79*m+42)+(2*m);j++) //控制输出多少个x:2*m+1 个
       {
          cout<<'x';
           i++;    //此时x也要增长
        }
    }
  cout<<' ';
  } 
 return 0;
}

posted @ 2011-07-02 22:39  csqlwy  阅读(198)  评论(1编辑  收藏  举报