一緒にPAT B1036とオバマ算数を学ぶために、非常に、非常に簡単な質問:矩形nに指定された辺の長さを印刷文字で、ここで私は他の誰かの答えが書いた何を参照してください、従来の考え方は、最初と最後の行を分割することであり、2〜れN-1ラインが、より矩形のようなコンソールの表示を行うためにランクの割合、印刷のみ、N / 2行からです。
一般的な答えは:
1つの#include <cstdioを> 2 3。 INT メイン(){ 4。 INT N-; // エッジ長 5。 チャー C; // 文字 6 scanfの(" %D%C "、およびN-、&C) 。7 。8 // 最初ライン 9。 ための(int型 I = 0、I <N - 、Iは++ ){ 10 のprintf(" %のC "、C); // N-文字 。11 } 12である のprintf(" \ N- "); 13である 14 // N / 2-1ライン2〜の 15 のために(int型私は= 1 Iは、N / <; 2 - 2私は++; ){ 16 のprintf(" %のC "、C); // 行ごと最初のC 17 のための(INT J = 0 ; J <N-- 2 ; J ++ ){ 18である のprintf(" "); // N-2-空間 19 } 20である のprintf(" %C \のN- "、C)。 21 } 22 23 // 第N / 2行 24 のための(int型 i = 0 ; iがn <; iは++ ){ 25 のprintf(" %のC " 、C)。 26 } 27 28 戻り 0 ; 29 }
業績:
それはだった非常に簡単な質問ですが、私は別の普通の「従来の」取得のソリューションを持っていますが。
1つの#include <iostreamの> 2 使用して 名前空間STDを、 3 4 int型のmain() 5 { 6 INT N。 7 チャーC。 8 CIN >> N >> C。 9 用(int型 I = 0 ; iがN / < 2 ; iが++ ){ 10 のために(INT J = 0 ; J <N; J ++ ){ 11 ならば(私の== 0 || iは== N / 2 - 1 | | jは== 0|| jは== N - 1 ){ 12 COUT << C。 13 } 他{ 14 COUT << ' ' 。 15 } 16 } 17 COUT << ENDL。 18 } 19 リターン 0 。 20 }
次の2つの方法の比較は、最初は、コンピュータの印刷文字にコンピュータによって方法で処理された:春の川は東に流れ、滝3000フィート。彼らは四方を持っていた場合:第二は、実現する四角形を描画するための通常の方法に従ってですが。
同じ問題が、それはコードをより合理化することができます思考のさまざまな方法を解決するが、それは熟考の価値があります。