例2.8 スタックハウジング
問題解決のためのアイデア
このアイデアは、最初の出版出力した後、私はルールを動かす停止する時間は非常に有益な質問です。
ACコード
書式#include <cstdioを> する#include <iostreamの> 使用して名前空間はstdを、 int型の M [ 82 ] [ 82 ]。 char型、Bと、 int型のn; INT メイン() { ブールフラグ= 真。 一方、(scanf関数(" %dの%Cは%のC "、&N、&、&B)=!EOF) { 場合(フラグ)フラグ= 偽。 他のprintf(" \ nを" ); 以下のために(int型 I = 1、J = 。1 ; I <= N - 、= I + 2、J ++)// 内部から各環の出力は、iがjはターンの数であり、ターンの辺の長さである { int型 X = N / 2 + 1、Y = X。// 中心点 X - = J - 1。; Y - = J - 1。 ; //は、左上の点座標オン チャー C = Jの%2 ==を1 A:B ;? //は、文字を回転 するための(int型 = K 。1 ; K <= I; K ++)// 現在割り当て環 { [X M + K - 1 ] [Y] =C; M [X] [Y + K - 1 ] = Cと、 m個の[X + I - 1 ] [Y + K - 1 ] =のC。 M [X + K - 1 ] [Y + I - 1 ] = Cと、 } } もし、(N!= 1 ) { M [ 1 ] [ 1 ] = ' ' ; M [N] [ 1 ] = ' ' ; M [ 1 ] [N] = ' '; M [n]は[N] = ' ' ; } のために(int型 i = 1 ; iが<= N; iが++ ) { ため(INT J = 1 ; J <= nであり、j ++ ) { のprintf(" %のC " 、M [i]は[J])。 } のprintf(" の\ n " ); } } // システム( "休止")。 リターン 0 ; }