首页 > 其他 > 详细

巧妙打印对称图案

时间:2014-04-06 23:33:01      阅读:598      评论:0      收藏:0      [点我收藏+]

算法:

第一个的代码的思想是以前从网上看到的,原理很简单,就是利用高中数学中线性规划的知识;               第二个代码是利用图案的对称关系,其总共有5*2-1行,分析可知,每行的空格数量是:5-当前行数;每行的空格数量是:行数*2-1;图形两侧的数字相加 == 11 == 5*2-1; 下面最后4行的图案是根据上面4行的图案换算得来的。

运行效果1                   运行效果2

bubuko.com,布布扣bubuko.com,布布扣

#include <iostream>
#include <cmath>
using namespace std;
int main(void)
{
   short int n;
   while(cin>>n)
   {
      for(int i=-n; i<=n; i++)
      {
         for(int j=-n; j<=n; j++)
            abs(i)+abs(j) >= n ? cout<<" " : cout<<"*";
         cout<<endl;//可适当更改abs(i)+abs(j) 和 n的关系,比如>=
      }

   }
   return 0;
}

#include <iostream>
using namespace std;
int main(void)
{
   int n;  //n代表要打印图案的行数(母图)h_1代表行数 h_2也是代表行数 l代表列数。
   while(cin>>n)
   {
      for(int h_1=1,h_2=1; h_1<=2*n-1; h_1++)
      {
         if( h_1 > n)
           h_2 = 2*n - h_1;
         else
           h_2 = h_1;
         for(int l=n-h_2; l>=1; l--)
            cout<<" ";
         for(int l=1; l<=2*h_2-1; l++)
            cout<<"*";
         cout<<endl;
      }
   }
    return 0;
}

巧妙打印对称图案,布布扣,bubuko.com

巧妙打印对称图案

原文:http://blog.csdn.net/li_jun_09_05/article/details/23030719

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!