7

だから、私はJavaにかなり精通しているので、一見些細なことを理解できないことにかなり腹を立てていますが、とにかく、Pythonを紹介する私の教授は、行に基づいた文字でパターンを作成する必要があるラボを割り当てましたそして列の位置。ループや反復はなく、条件文のみです。

たとえば、この関数:

def letter(row, col):
   if row>col:
      return 'T'
   else:
      return 'W'

次の結果が得られます。

WWWWWWWWWWWWWWWWWWWW
TWWWWWWWWWWWWWWWWWWW
TTWWWWWWWWWWWWWWWWWW
TTTWWWWWWWWWWWWWWWWW
TTTTWWWWWWWWWWWWWWWW
TTTTTWWWWWWWWWWWWWWW
TTTTTTWWWWWWWWWWWWWW
TTTTTTTWWWWWWWWWWWWW
TTTTTTTTWWWWWWWWWWWW
TTTTTTTTTWWWWWWWWWWW
TTTTTTTTTTWWWWWWWWWW
TTTTTTTTTTTWWWWWWWWW
TTTTTTTTTTTTWWWWWWWW
TTTTTTTTTTTTTWWWWWWW
TTTTTTTTTTTTTTWWWWWW
TTTTTTTTTTTTTTTWWWWW
TTTTTTTTTTTTTTTTWWWW
TTTTTTTTTTTTTTTTTWWW
TTTTTTTTTTTTTTTTTTWW
TTTTTTTTTTTTTTTTTTTW

行と列の両方が 20 に等しいドライバー ファイルを実行すると、

私が立ち往生しているのは、パターンの関数を作成することです:

XOOOOOX
OXOOOXO
OOXOXOO
OOOXOOO
OOXOXOO
OXOOOXO
XOOOOOX

答えをスプーンフィードしないでください。むしろ、正しい方向に向けてください。

これまでのところ、左から右への対角線の X は、row==col の場合に識別できることがわかっています。私が問題を抱えているのは、右から左への対角線です。

どうもありがとう。

4

1 に答える 1

6

それぞれの位置の行と列の関係を見てくださいX。次に、この問題を 2 つに分割します。1 つの側面は、左上から右下に向かう線であり、もう 1 つの側面は、左下から右上に向かう線です。

左上から右下Xの sを見てみましょう。

row: column:
1    1
2    2
3    3
4    4
5    5
6    6
7    7

それに基づいて、行と列の関係を判断できると思います。

次に、左下から右上への他の行はどうですか。

row: column:
1    7
2    6
3    5
4    4
5    3
6    2
7    1

ここでの優しいヒントは「+」です。

したがって、要素の行と列が最初に指定された関係orと 2 番目に指定された関係を持っている場合、Xそこに を配置します。

それが適切な量の助けであったことを願っています。

于 2015-04-18T01:30:35.867 に答える