国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

打印圣誕樹

這篇具有很好參考價值的文章主要介紹了打印圣誕樹。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

打印圣誕樹

今天遇到一個不算特別變態(tài)的題目,可是卻往錯誤的方向思考了有一會兒。

這是這個題目的鏈接:[打印圣誕樹](圣誕樹_??皖}霸_??途W(wǎng) (nowcoder.com))

題目大致意思是,給定一個高度,打印出圣誕樹。

效果圖類似以下這種:

打印圣誕樹

錯誤示范

首先我把每片葉子看作是5X3的矩形,空白看作是3X3的矩形。

最上面為第1層,最下面為第n層。

第i層前面有n-i個空矩形。

打印圣誕樹

于是,我就想到了下面的代碼:

#include"stdio.h"
void print_empty();//打印空矩形,只含一個printf函數(shù)
void print_53();//打印三角矩形,只含一個printf函數(shù)
int main()
{
    int n=0;
    scanf("%d",&n);//n是輸入的圣誕樹高度
    for(int i=1;i<n+1;i++)//到第i層
    {
        for(int j=0;j<n-i;j++)//第i層有n-i個空矩形
            print_empty();
        for(int j=0;j<i;j++)//第i層有i個53矩形
            print_53();
        printf("\n");
    }
    return 0;
}
void print_empty()
{
    printf("   \n"
           "   \n"
           "   \n");
}
void print_53()
{
    printf("  *  \n"
           " * * \n"
           "* * *\n");
}

突然我想到,在打印空矩形和53矩形時換了行,我要怎么保證兩個矩形在同一行呢?

果不其然,結(jié)果成了這樣。

打印圣誕樹

而且,這種方式還有一個缺點,就是兩個53矩形之間還有一行沒考慮,自然更不可能得到正確答案。

正確姿勢

代碼

直接上代碼,再解釋:

#include <stdio.h>
void print_empty_3();//輸出3個空格
void print_level(int l);//打印矩形第l行
int main()
{
    //不妨把圣誕樹的每片三角形看作是 6X3 的矩形
    //把矩形看作一個元素,那么從上到下,共n層,從第一層開始看
    //第i層先有空白矩形n-i個,有三角形矩形i個

    //這樣在每層的內(nèi)部,還有三行,從上到下3行,從第一行開始看
    //第j行先有空白矩形行(n-i)個,之后有i個第j行矩形
    int n=0;
    scanf("%d",&n);
    for (int i = 1; i < n+1; ++i)//控制第幾層
    {
        for (int j = 1; j <=3; ++j)//到了第i層的第j行,控制行
        {
            for (int k = 0; k < n-i; ++k) //第j行先有空白
            {
                print_empty_3();
            }
            for (int k = 0; k < i; ++k) //打印i個矩形第j行
            {
                print_level(j);
            }
            printf("\n");//每行輸出完后換行
        }
    }
    //最后,還有一個高n行的樹根
    //這個樹根的位置在第nX3列
    for (int i = 0; i < n; ++i)//控制樹根高度為n
    {
        for (int j = 0; j < n*3-1; ++j)
        {
            printf(" ");
        }
        printf("*\n");
    }
}
void print_empty_3()
{
    printf("   ");
}
void print_level(int l)
{
    if (1==l)
        printf("  *   ");
    else if(2==l)
        printf(" * *  ");
    else if(3==l)
        printf("* * * ");
}

解釋

打印圣誕樹

這個版本中,我將圣誕樹的每片三角形看作是6X3的矩形,用以解決5X3矩形時兩個矩形中間有缺口的問題

,并且把每層矩形再分為3行。

思路

樹葉思路

從第一層開始從上往下共n層,第i層先有(n-i)個空矩形,i個六三矩形

每一層從第一行開始從上往下共3行,每行先打印(n-i)個單行空矩形,也就是(n-i)*3個空格。

在打印第j行的單行矩形,這里用 void print_level(int l),函數(shù)接收第幾行,就打印六三矩形的第幾行,

一行打印完不忘換行 printf("\n");

樹根思路

至于最后的樹根,這個很簡單,找規(guī)律即可:

當n=1時,樹根長1,在占用行的第3個字符處;

當n=2時,樹根長2,在占用行的第6個字符處;

當n=3時,樹根長3,在占用行的第9個字符處;

所以,樹根長n,在占用行的第n*3個字符處;

所以,來一個嵌套循環(huán)即可:

外層循環(huán)控制行,內(nèi)層循環(huán)控制空格字符數(shù),到n*3的位置時停止打印空格,打印“*”。

    for (int i = 0; i < n; ++i)//控制樹根高度為n
    {
        for (int j = 0; j < n*3-1; ++j)
        {
            printf(" ");
        }
        printf("*\n");
    }

最終效果

打印圣誕樹文章來源地址http://www.zghlxwxcb.cn/news/detail-411735.html

到了這里,關于打印圣誕樹的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • C語言、c++實現(xiàn)一個超級好看的閃爍的圣誕樹(控制臺)
  • 圣誕節(jié)怎么能缺少圣誕樹呢?Python+HTML打造專屬于你的圣誕樹

    圣誕節(jié)怎么能缺少圣誕樹呢?Python+HTML打造專屬于你的圣誕樹

    前言: 美酒一杯讓人醉,溫馨陪伴浪漫隨;雪花片片惹人愛,煩惱憂傷全不見;字里行間藏真情,文短情深送心愿:圣誕佳節(jié)快來到,祝大家永遠開心幸福! Hello大家好,我是Dream。 圣誕節(jié)馬上到了,一些朋友問我想送女朋友和男朋友們圣誕節(jié)禮物,但是也沒想到啥好點子,作為

    2024年02月02日
    瀏覽(93)
  • python系列之(大家圣誕快樂)圣誕樹

    python系列之(大家圣誕快樂)圣誕樹

    2022年圣誕節(jié)到來啦,很高興這次我們又能一起度過~, 圣誕節(jié)源自古羅馬人迎接新年的農(nóng)神節(jié),與基督教本無關系。在基督教盛行羅馬帝國后,教廷將這種民俗節(jié)日納入基督教體系,同時以慶祝耶穌的降生。但在圣誕節(jié)這天不是耶穌的生辰,因為《圣經(jīng)》未記載耶穌具體出生

    2024年02月04日
    瀏覽(97)
  • 【含源碼】兩種不同風格的圣誕樹代碼合集,其中還有可以改名字的圣誕樹代碼

    【含源碼】兩種不同風格的圣誕樹代碼合集,其中還有可以改名字的圣誕樹代碼

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 前言 一年一度的圣誕節(jié)馬上就要到了,看到好多程序員小伙伴已經(jīng)開始炫耀自己制作的圣誕樹了。今天就跟大家分享2種不同風格的圣誕樹,附上完整代碼,拿來即用可以按照自己的喜好來去運

    2024年02月02日
    瀏覽(16)
  • Python圣誕樹代碼

    Python圣誕樹代碼

    2024年02月04日
    瀏覽(92)
  • 【AE圣誕樹代碼】

    【AE圣誕樹代碼】

    首發(fā)網(wǎng)站 天風的人工智能小站 1、圣誕樹代碼第一種 2、圣誕樹代碼第二種 3、修改記事本后綴為html 4、點擊文件查看效果

    2024年02月04日
    瀏覽(17)
  • 圣誕樹(動態(tài)效果)

    圣誕樹(動態(tài)效果)

    ? 1.復制代碼到Dreamweaver或HBuilder或vscode中 2.點擊運行---運行到瀏覽器---選擇你要打開的瀏覽器 3.打開后會出現(xiàn)這個界面,前四個是固定音樂,最后一個是自主選擇的音樂,你可以選擇你電腦上的歌曲,什么歌曲都行(第一次打開可能會有點慢,稍等片刻即可,選擇音樂的時候

    2024年02月04日
    瀏覽(19)
  • Python 圣誕樹代碼

    Python 圣誕樹代碼

    1.本章將會講解Python編程 實現(xiàn)圣誕樹效果! 2.圣誕節(jié)介紹 基督教紀念耶穌誕生的重要節(jié)日。亦稱耶穌圣誕節(jié)、主降生節(jié),天主教亦稱耶穌圣誕瞻禮。耶穌誕生的日期,《圣經(jīng)》并無記載。公元336年羅馬教會開始在12月25日過此節(jié)。12月25日原是羅馬帝國規(guī)定的太陽神誕辰。有人

    2024年02月03日
    瀏覽(93)
  • 圣誕樹c語言代碼

    圣誕樹是一種視覺效果的程序設計模型,可以通過在控制臺上使用字符和符號的不同組合來模擬出一棵帶有裝飾物的圣誕樹的形象。以下是一個使用 C 語言實現(xiàn)圣誕樹的簡單示例代碼: #include stdio.h int main(void) { printf(\\\" *n\\\"); printf(\\\" ***n\\\"); printf(\\\" *****n\\\"); printf(\\\" *******n\\\"); printf

    2024年02月04日
    瀏覽(26)
  • 圣誕樹視頻代碼HTML

    圣誕樹視頻代碼HTML

    如有侵權,與本人聯(lián)系 通過更改文件名稱使網(wǎng)頁顯示不同的視頻 效果圖片 文章最后記得點贊哦(●ˇ?ˇ●)

    2024年02月04日
    瀏覽(38)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包