CUST天梯賽 L2 - 翔翔的畫圖題

題目:

翔翔今天上畫畫課,老師在上課之前講了一個故事,翔翔聽得很認真:

長方體是一個聰明的小男孩兒,他生活在一個叫做“數學之木莎耳奇”的古老部落,那裏一切像世外桃源一樣美,長老們都說那是因爲他們的祖先得到了自然女神的寵愛,自然女神總是不定期的出現在他們部落,每一次, 她都只見一個有緣人,如果這個有緣人能夠通過她的考驗,她就會滿足這個有緣人的一個合理的心願。

長方體是“數學之木莎耳奇”最有靈性的男孩兒,也是最有可能成爲自然女神的有緣人的一個,長方體對此卻不以爲然,因爲他並不相信這個傳說。有一天,長方體去小河邊玩,已經有一些夥伴在河邊嬉戲,有三角形,正方形,圓,等等..。長方體見他們在那兒,轉身就走,因爲長方體不喜歡和不聰明的小孩子玩,而部落裏又屬他最聰明,所以,他總是自己一個人玩。他剛走兩步,就聽到三角形喊救命,原來是平行四邊形掉到河裏去,水並不深,但平行四邊形不會游泳,其它小孩子都嚇壞了,紛紛跑到岸上,也不敢下水,長方體見他們沒人敢去,擔心平行四邊形會有生命危險,就奮不顧身地他才突然想跳進了河裏,這時,他才突然想起,自己也不怎麼會游泳,可是,已經晚了,長方體只好賭一把, 拼死救人。

一分鐘, 兩分鐘,三分鐘....。十分鐘,長方體和平行四邊形都沒有再浮出水面。

小夥伴們都以爲他們死了,哭得好傷心,突然,長方體舉着平行四邊形衝出了水面,長方體把平行四邊形救出來了。大家都很感謝長方體,長方體什麼也沒說,就是走開了。

長方體坐在草原上看風景,自然女神出現了,她和人們說得一樣美,自然女神說:“長方體,你已經通過了我的考驗,告訴我,你有什麼願望吧?”

長方體說:“我不知道你口中的,我通過了什麼考驗,我也沒興趣知道。所謂的我的願望,我也沒有興趣告訴你,”自然女神從沒遇到過這麼有個性的小孩兒。

自然女神說:“既然你不說,那我就自作主張替你做決定了。”長方體說:“隨便你,反正,我可不會感謝你。”

自然女神知道長方體一個人玩,沒有夥伴,就創造了正方體,正方體和長方體-樣聰明,而且,正方體和長方體還十分相似呢,有許多共同的特點。長方體很喜歡這個新夥伴。長方體對自然女神說;“我很喜歡正方體,他有許多和我相似的地方,像我的影子,但又和我完全不一樣,有自己的個性。”

自然女神說:“你喜歡就好,其實,正方體是另一個特殊的你。比你自己還要特別的你。以後,你自然會明白的。”

現在請聽題,請畫出一個邊長爲n的斜二測畫法的正方體。

線段用星號代替,空白請輸出空格,行末沒有空格。

QQ截圖20200510211550.png

斜二測直觀圖 
斜二測直觀圖是高中立體幾何的一種常見用圖。以原來的圖形參數爲藍本,將圖形的底邊保持不變,高變爲原來的1/2,90°角自動更改爲45°角,這樣得到的就是斜二測直觀圖。斜二測直觀圖的面積與原圖形的面積比爲1:2√2。

輸入格式:

一個數字n(6≤n≤100),保證n爲偶數

輸出格式:

一個正方體,線段用星號代替,空白請輸出空格,要求圖形的上下(或左右)不能有一整個空行(或一整個空列)。

輸入樣例:

8

輸出樣例:

   ********
  *      **
 *      * *
********  *
*      *  *
*      *  *
*      *  *
*      *  *
*      * *
*      **
********

代碼:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
int main()
{
    int n;
    while(cin>>n)
    {
        char a[500][500];
        memset(a,0,sizeof(a));
       for(int i=0;i<n/2;i++)
        {
            for(int j=0;j<n/2+n-1;j++)
            {
                if(j>=n/2-i-1&&i==0)a[i][j]='*';
                else if(i==n/2-1&&j<n-1)a[i][j]='*';
                else if(j==n/2-i-1||j==n/2-i+n-1-1){
                        a[i][j]='*';
                        if(j==n/2-i+n-2)a[i+n-1][j]='*';
                }
                //else a[i][j]=' ';
            }
        }
        for(int i=n/2;i<n+n/2-1;i++)
        {
            for(int j=0;j<n;j++)
            {
                if(j==0||j==n-1)a[i][j]='*';
                //else a[i][j]=' ';
            }
        }
        for(int i=0;i<n;i++)
        {
            a[i][n+n/2-2]='*';
        }
        for(int j=0;j<n;j++)
        {
            a[n+n/2-2][j]='*';
        }
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<n+n/2-1;j++)
            {
                cout<<a[i][j];
            }
            cout<<endl;
        }
        int c=2;
        for(int i=n;i<n+n/2-2;i++)
        {
            for(int j=0;j<n+n/2-c;j++)
            {
                cout<<a[i][j];
            }
            c=c+1;
            cout<<endl;
        }
        for(int j=0;j<n;j++)
        {
            cout<<a[n+n/2-2][j];
        }
    }
    return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章