演算法競賽入門經典 第2版 習題2 3詳解

2021-07-13 19:58:56 字數 977 閱讀 7274

畫圖分析:

//第二個迴圈:列印#

for(k=1;k<=2*(n-i)+1;k++)

printf("\n");//換行

}return

0;}執行結果:

上面寫的是列印倒三角形的**,到這裡我覺得還是有必要寫乙個列印正三角形的**。

//列印#

for(k=1;k<=2*i-1;k++)

printf("\n");//換行

}return

0;}執行結果:

綜上所述:其實這兩道題的演算法思路都是類似的,就是乙個外層迴圈控制列印的層數,然後內層兩個迴圈,第乙個控制列印的空格數,第二個控制列印的#數,到這裡肯定有人會問,為什麼不讓第乙個迴圈控制列印的#數量,讓第二個迴圈控制列印的空格數呢?我想告訴你的是因為你仔細觀察圖形的構造,前面是空格,然後中間是#,最後是空白的,所以最後的空白是可以不用列印的,因為換行後後面自然就是空白的了。所以內層的第乙個迴圈是用來列印空格數的,第二個迴圈用來列印#的數量,所以只要觀察出每行空格數量和#數量隨行數的變化的規律,**自然水到渠成。。

演算法競賽入門經典(第二版)第2章習題

2.4.1 輸出技巧 include intmain 習題2 2 水仙花數 daffodil 輸出100 999中的所有水仙花數。若3位數abc滿足abc a 3 b 3 c 3,則稱其為水仙花數。include intmain return 0 習題2 3 韓信點兵 hanxin 相傳韓信才智過人...

演算法競賽入門經典 習題2答案

輸入乙個不超過10 9的正整數,輸出他的位數,例如12735的位數是5.請不要使用任何數學函式,只用四則運算和迴圈語句實現 include include define uint unsigned int using namespace std int main cout i endl return...

演算法競賽入門經典(第2版)第二章習題(Java)

引用的包 中並沒有寫,在eclipse下按shift ctrl o即可匯入包 習題 2 1 水仙花數 daffodil public static void daffodil 習題 2 2 韓信點兵 hanxin public static void hanxin str str case n no...