2011-06-23 20 views
1

我正在尋找一個金字塔計劃的C++或c#代碼(我的水平:x,第二級x x ...等等)。 THXC++/c#金字塔計劃如何使它?

+0

嘗試編寫一些代碼並查看會發生什麼 - 您將快速瞭解您需要的信息。 – Skizz

+7

大多數國家/地區不是[金字塔計劃](http://en.wikipedia.org/wiki/Pyramid_scheme)是否違法? – fredoverflow

回答

4

下面是一些僞代碼,你可以翻譯成任何你選擇的命令式語言:

for each i from 1 to max 
    for each k from 1 to i 
     print x 
    newline 
0

這聽起來像你想這個格式化的一點點。這聽起來像是一所高中,在學期開始的時候,你可能會因爲發現你使用的任何語言而自欺欺人。但是,讓我們說你不是,而你想格式化。

FredOverflow給出正確的僞代碼算法中進行打印:

x 
xx 
xxx 
... 

,但如果你希望它是那麼集中,你需要考慮多少空間首先添加。

如果你的金字塔是高的,那麼底部是寬的。第n-1行包含n-1個x,但需要均勻間距,並且不能只在每一邊添加0.5個空格,至少要使用文本(除非這是在GUI中,而您正在使用某個DrawText(x,y ,文字)方法)。相反,考慮到,如果你把每個x之間的空間,你永遠有一行字的奇#,使錐體間距,就像這樣:

x 
x x 
x x x 

因此,你可以這樣做:

for (i = 1; i<= n; i++) { 
    for (j = 0; j < n-i; j++) { 
    printf(" "); 
    } 
    for (k = 0; k < i; i++) { 
    printf("x "); 
    } 
    printf("\n"); 
} 

或重寫以滿足您的需求/更高效。這裏有選擇,你應該嘗試另一種方式來看看差異教給你什麼。具體而言,請注意遞歸循環中使用的數學運算。這很容易,特別是在開始時,在循環中發生錯誤的數學錯誤。哎呀,我希望我剛剛沒有做出一個!