欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

C++混亂編程?“可可愛愛”的圣誕樹代碼!-創(chuàng)新互聯(lián)

“可可愛愛”的圣誕樹代碼
  • 直接上圖
  • 第一步:設(shè)計(jì)圣誕樹
  • 第二步:找到每層通用的規(guī)律
  • 第三步:設(shè)計(jì)程序結(jié)構(gòu)
  • 第四步:寫出原版程序
  • 第五步:代碼藝術(shù)化與數(shù)字替代
  • 第六步:將變量名替換為純下劃線
  • 第七步:函數(shù)名與保留字替換
  • 第八步:快樂壓行
  • 第九步:拼個(gè)愛心(代碼在這里)

創(chuàng)新互聯(lián)主營(yíng)南湖網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app軟件開發(fā)公司,南湖h5微信小程序開發(fā)搭建,南湖網(wǎng)站營(yíng)銷推廣歡迎南湖等地區(qū)企業(yè)咨詢直接上圖

運(yùn)行效果
代碼效果

第一步:設(shè)計(jì)圣誕樹

簡(jiǎn)單地用星號(hào)和空格構(gòu)造以下圣誕樹:

  1. 由七層構(gòu)成:五層樹冠、一層樹根、一層地面
  2. 從上到下,奇數(shù)層占4行,偶數(shù)層占6行。避免圣誕樹顯得死板,并使得樹根和地面比例融洽。
  3. 對(duì)于第i層樹冠,該層內(nèi)每行星號(hào)數(shù)目為2x+1。其中x分別為{i,i+2,i+4,i+7,i+12,i+14}。
  4. 令圖紙寬度為49,圣誕樹居中對(duì)稱。樹根層寬度為11,地面層寬度為49。
第二步:找到每層通用的規(guī)律
  1. 對(duì)于每行 for (k從0到48),用putchar輸出星號(hào)或者空格。那么我們需要一個(gè)表達(dá)式來判斷這個(gè)位置是星號(hào)還是空格。
  2. 圖紙正中為24,不妨比較|k-24|與x的大小。若|k-24|>x,則輸出空格。否則輸出星號(hào)。
  3. 很容易想到,對(duì)于地面層,只要第七層“樹冠”的最短一行長(zhǎng)度都超過49,那么自然會(huì)被截?cái)喑砷L(zhǎng)為49的方塊。因此不需要特判。
  4. 對(duì)于樹根層,特判并使x=5即可。
第三步:設(shè)計(jì)程序結(jié)構(gòu)
  1. 簡(jiǎn)單地,使用三層循環(huán)的結(jié)構(gòu)。
  2. 最外面的循環(huán)為層數(shù),由i控制,從第一層到第七層。
  3. 中間的循環(huán)為行數(shù),由j控制,從一到四行或一到六行。四還是六可以通過4+2*(i%2)得到。我們不妨將其寫做4+(i&1)<<1。
  4. 最內(nèi)層的循環(huán)為每一行的輸出,由k控制。
第四步:寫出原版程序
  1. 將星號(hào)、空格和換行分別用0x20 0x2A和0x0A表示,以使得代碼美觀。
  2. 循環(huán)變量 i 從0到6,以產(chǎn)生魔法。for (int i=-1;i<=5;),并在循環(huán)內(nèi)第一次用到變量 i 的地方, 使用++i即可(i先自增1,再返回自增后i的?)
  3. 每層第一行的 x=4*i+1,不妨寫作x=(i+1)*4-4+1;
  4. 層內(nèi),每到下一行,x 增加2。若 j = = 2、4則再加一。若j = = 4則又再加一。不妨寫作x+=(j%2==0)+(j%4 ==0)+2。
  5. 增加樹根層特判:if (i= =5) x=5; 這真是太巧了,所以不妨寫作:
    x = (i == 5)?(i=5):x;
    為了使代碼“豐富”,我們定義變量H,并改作:
    x= (H=((i==5)?(i=5):x)) ? H : x;
    并去除其中所有不必要的括號(hào),以使代碼更加抽象。
    代碼如下:
#includeusing namespace std;
int main()
{
	int i=-1,H=0,x=0;
	for (;i<=5;)
	{
		x=(++i+1<<1<<1)-(1<<(1<<1))+1;
		for (int j=1;j<=(1<<1<<1)+((i&1)<<1);j++)
		{
			x=(H=(i==5?(i=5):0))?H:x;
			for (int k=0;k<=16+32;k++) putchar((24-k)>x||(k-24)>x?0x20:0x2A);
			putchar(0x0A);
			x+=(j%2==0)+(j%4==0)+2;
		}
	}
	getchar();
}
第五步:代碼藝術(shù)化與數(shù)字替代
  1. 稍后去除using namespace std;并在每個(gè)函數(shù)前使用std::的表達(dá)形式
  2. 將所有數(shù)字用“1的二進(jìn)制左移”、“1的二進(jìn)制左移”的嵌套以及“1的二進(jìn)制左移”的加減來表示。例如:
    32=(1<<(10>>1))+((1<<(10>>1)>>1))
    16=(1<<(10>>1))+((1<<(10>>1)>>1))>>1
    48=32+16=(1<<(10>>1))+((1<<(10>>1)>>1))+(1<<(10>>1))+((1<<(10>>1)>>1))>>1
    24=48÷2=((1<<(10>>1))+((1<<(10>>1)>>1))+(1<<(10>>1))+((1<<(10>>1)>>1))>>1)>>1
    4=1<<1<<1
    5=(1<<1<<1)+1
  3. 利用(j=1)將先給j賦值為1再返回1的性質(zhì),將每個(gè)for循環(huán)的初始化和迭代條件都盡可能放在奇怪的地方。
    此時(shí)代碼如下:
#includeint i=-1,H=0,x=0,j;
//32=(1<<(10>>1))+((1<<(10>>1)>>1))
//16=(1<<(10>>1))+((1<<(10>>1)>>1))>>1
int main()
{ 
	for (;i<=(1<<1<<1)+1;)
	{
		x=(++i+1<<1<<1)-(1<<(1<<1))+(j=1);
		for (;j<=(1<<1<<1)+((i&1)<<1);)
		{
			x=(H=i==((1<<1<<1)+1)?(i=(1<<1<<1)+1):0)?H:x;
			for (int k=0;k<=(1<<(10>>1))+((1<<(10>>1)>>1));k++) std::putchar((((1<<(10>>1))+((1<<(10>>1)>>1))>>1)-k)>x||(k-((1<<(10>>1))+((1<<(10>>1)>>1))>>1))>x?0x20:0x2A);std::putchar(0x0A);
			x+=(j%(1<<1)==0)+(j++%(1<<1+1)==0)+(1<<1);
		}
	}
	getchar();
}
第六步:將變量名替換為純下劃線

是的,一個(gè)下劃線、兩個(gè)下劃線到五個(gè)下劃線,它們是五個(gè)不同的變量。
然后就變成了這樣:

#includeint _=-1,_____,____,__,___;
int main()
{ 
	for (;_<=(1<<1<<1)+1;)
	{
		__=(++_+1<<1<<1)-(1<<(1<<1))+(___=1);
		for (;___<=(1<<1<<1)+((_&1)<<1);)
		{
			__=(_____=_==((1<<1<<1)+1)?(_=(1<<1<<1)+1):0)?_____:__;
			for (;____<=(1<<(10>>1))+((1<<(10>>1)>>1));____++) std::putchar((((1<<(10>>1))+((1<<(10>>1)>>1))>>1)-____)>__||(____-((1<<(10>>1))+((1<<(10>>1)>>1))>>1))>__?0x20:0x2A);std::putchar(0x0A);
			__+=(___%(1<<1)==0)+(___++%(1<<1+1)==0)+(1<<1)+(____=0);
		}
	}
	std::getchar();
}
第七步:函數(shù)名與保留字替換

通過預(yù)編譯指令#define將main、int、getchar之類的單詞都替換為意義不明的奇怪東西。
效果如下:

#define _O_ getchar
#define OO putchar
#define O_O main
#define OOO std
#define O int
#includeO _____,__,___,____,_=-1;
O O_O()
{
	for (;_<=(1<<1<<1)+1;)
	{
		__=(++_+1<<1<<1)-(1<<(1<<1))+(___=1);
		for (;___<=(1<<1<<1)+((_&1)<<1);)
		{
			__=(_____=_==((1<<1<<1)+1)?(_=(1<<1<<1)+1):0)?_____:__;
			for (;____<=(1<<(10>>1))+((1<<(10>>1)>>1));____++) OOO::OO((((1<<(10>>1))+((1<<(10>>1)>>1))>>1)-____)>__||(____-((1<<(10>>1))+((1<<(10>>1)>>1))>>1))>__?0x20:0x2A);OOO::OO(0x0A);
			__+=(___%(1<<1)==0)+(___++%(1<<1+1)==0)+(1<<1)+(____=0);
		}
	}
	_O_();
}
第八步:快樂壓行
#define _O_ getchar
#define OO putchar
#define O_O main
#define OOO std
#define O int
#includeO _____,__, ___,____,_=-1;O O_O(){for (;_<=(1<<1<<1)+1;){__=(++_+1<<1<<1)-(1<<(1<<1))+(___=1);for (;___<=(1<<1<<1)+((_&1)<<1);){__=(_____=_==((1<<1<<1)+1)?(_=(1<<1<<1)+1):0)?_____:__;for (;____<=(1<<(10>>1))+((1<<(10>>1)>>1));____++) OOO::OO((((1<<(10>>1))+((1<<(10>>1)>>1))>>1)-____)>__||(____-((1<<(10>>1))+((1<<(10>>1)>>1))>>1))>__?0x20:0x2A);OOO::OO(0x0A);__+=(___%(1<<1)==0)+(___++%(1<<1+1)==0)+(1<<1)+(____=0);}}_O_();}

大部分空格和換行都不影響編譯,C++真好!

第九步:拼個(gè)愛心(代碼在這里)

這一步花了一些時(shí)間,多調(diào)整了幾次。

//This is for my best friend LYX.
#define _O_ getchar
#define OO putchar
#define O_O main
#define OOO std
#define O int
#include O _____,__,       ___,____,
			_=-1;O O_O()     {for (;_<=(1
		<<1<<1)+1;){__   =(++_+1<<1<<1)-
		  (1<<(1<<1))+(___ =1);for (;___<=(1
		<<1<<1)+((_&1)<<1) ;){__=(_____=_==((
	   1<<1<<1)+1)?(_=(1<<1<<1)+1):0)?_____:__
	   ;for (;____<=(1<<(10>>1))+((1<<(10>>1)>>1));____++) OOO::OO((((1<<(10>>1))+((1
		<<(10>>1)>>1))>>1)-____)>__||(____
		    -((1<<(10>>1))+((1<<(10>>1)>>1
		    ))>>1))>__?0x20:0x2A);OOO::OO(
		       0x0A);__+=(___%(1<<1)==0)
			     +(___++%(1<<1+1)==0)
					+(1<<1)+(____=0)
						;}}_O_(
					      );}

最后祝大家圣誕節(jié)快樂!祝可愛的小貓咪身體健康,平安順?biāo)?/p>

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

名稱欄目:C++混亂編程?“可可愛愛”的圣誕樹代碼!-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)URL:http://chinadenli.net/article6/cdodig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器網(wǎng)站設(shè)計(jì)移動(dòng)網(wǎng)站建設(shè)關(guān)鍵詞優(yōu)化網(wǎng)站導(dǎo)航自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)