teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

回答の追加

2016/05/21 03:26

投稿

退会済みユーザー
answer CHANGED
@@ -7,4 +7,42 @@
7
7
  }
8
8
  echo($result);
9
9
  ```
10
- こんな感じでしょうか。
10
+ こんな感じでしょうか。
11
+
12
+ ---
13
+
14
+ ```php
15
+ function myForloop(){
16
+ $pre='';
17
+ $suf='';
18
+ echo"<table>";
19
+ for($row=0; $row<5; $row++){
20
+ $htmlL = '';
21
+ $htmlR = '';
22
+ for($col=0; $col<5; $col++){
23
+ if($col<=$row){
24
+ $htmlL .= "<td>*</td>";
25
+ $htmlR = $htmlR. "<td>*</td>";
26
+ } else {
27
+ $htmlL .= "<td> </td>";
28
+ $htmlR = "<td> </td>". $htmlR;
29
+ }
30
+ }
31
+ $pre .= "<tr>". $htmlL. $htmlR. "<tr>";
32
+ $suf = "<tr>". $htmlL. $htmlR. "<tr>". $suf;
33
+ }
34
+ echo $pre.$suf."</table>";
35
+ }
36
+ myForloop();
37
+ ```
38
+
39
+ 質問にコードが追加されたのでテーブルで出力する方式も追記します。
40
+
41
+ 今回の場合縦横ともに10回繰り返すわけですが、問題は1~5行目と6~10行目で表示する内容の法則が逆になるところかと思います。
42
+ そこで1行目と10行目、2行目と9行目・・・が同じという点に注目して
43
+ 1行目を作るときに10行目も作ってしまえばいいと考えました。
44
+
45
+ 列に関しても同じで1列目を作る時に10列目をつくれば行列ともに1~5の範囲でループさせれば済みます。
46
+ あとは`*`か` `を判別する条件`$col<=$row`(列番号が行番号以下の場合に`*`)を考えるという感じでしょうか。
47
+
48
+ ところでこれ色んな考え方のできるなかなかいい問題と思うんですが・・・授業か何かの課題ですか?