大米CMS官网论坛,大米站长联盟,大米站长之家,大米开发者社区

 找回密码
 注册大米会员

QQ登录

只需一步,快速开始

查看: 18248|回复: 15
打印 上一主题 下一主题

一个很有趣的PHP绕圈编程题

[复制链接]

10

主题

11

帖子

620

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
620
跳转到指定楼层
楼主
发表于 2015-4-1 16:12:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
今天逛QQ群 群友发了一道PHP题 如下


要求用PHP编程写出 为了锻炼下自己大脑的 可以实验写哈
本人的回答暂时隐藏 回帖可以看答案  

游客,如果您要查看本帖隐藏内容请回复





分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
回复

使用道具 举报

0

主题

1

帖子

8

积分

新手上路

Rank: 1

积分
8
沙发
发表于 2015-4-1 23:03:53 | 只看该作者
我看看这是什么鬼。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

8

积分

新手上路

Rank: 1

积分
8
板凳
发表于 2015-4-2 11:15:13 | 只看该作者
没有思路
回复

使用道具 举报

地板
大米粉丝  发表于 2015-4-2 11:44:44
321321fgrewtgrewtr
回复 支持 反对

使用道具

0

主题

1

帖子

8

积分

新手上路

Rank: 1

积分
8
5#
发表于 2015-4-2 12:47:36 | 只看该作者
螺旋矩阵啊
回复 支持 反对

使用道具 举报

0

主题

2

帖子

10

积分

新手上路

Rank: 1

积分
10
6#
发表于 2015-4-17 09:51:17 | 只看该作者
  1. <?php
  2. function matrix($n){
  3.     $y = $x = ($n - 1) / 2;
  4.     $num = 2;
  5.     $total = pow($n, 2);
  6.     $arr = array_fill(0, $n, array_fill(0, $n, 1));
  7.     $i = 0;
  8.     $limit = 1;

  9.     while ($num <= $total) {
  10.          for ($j = 0; $num <= $total && $j < $limit; ++$j) {
  11.              switch ($i) {
  12.                  case 0 :
  13.                      ++$y;
  14.                      break;
  15.                  case 1 :
  16.                      ++$x;
  17.                      break;
  18.                  case 2 :
  19.                      --$y;
  20.                      break;
  21.                  case 3 :
  22.                      --$x;
  23.                      break;
  24.              }
  25.              $arr[$x][$y] = $num++;
  26.          }
  27.          if ($i % 2 == 1) {
  28.              ++$limit;
  29.          }
  30.          $i = ($i + 1) % 4;
  31.      }
  32.      return $arr;
  33. }

  34. $arr = matrix(9);
  35. print_r($arr);
复制代码
回复 支持 反对

使用道具 举报

0

主题

2

帖子

10

积分

新手上路

Rank: 1

积分
10
7#
发表于 2015-4-17 09:51:24 | 只看该作者
  1. <?php
  2. function matrix($n){
  3.     $y = $x = ($n - 1) / 2;
  4.     $num = 2;
  5.     $total = pow($n, 2);
  6.     $arr = array_fill(0, $n, array_fill(0, $n, 1));
  7.     $i = 0;
  8.     $limit = 1;

  9.     while ($num <= $total) {
  10.          for ($j = 0; $num <= $total && $j < $limit; ++$j) {
  11.              switch ($i) {
  12.                  case 0 :
  13.                      ++$y;
  14.                      break;
  15.                  case 1 :
  16.                      ++$x;
  17.                      break;
  18.                  case 2 :
  19.                      --$y;
  20.                      break;
  21.                  case 3 :
  22.                      --$x;
  23.                      break;
  24.              }
  25.              $arr[$x][$y] = $num++;
  26.          }
  27.          if ($i % 2 == 1) {
  28.              ++$limit;
  29.          }
  30.          $i = ($i + 1) % 4;
  31.      }
  32.      return $arr;
  33. }

  34. $arr = matrix(9);
  35. print_r($arr);
复制代码
回复 支持 反对

使用道具 举报

501

主题

778

帖子

7664

积分

超级版主

Rank: 8Rank: 8

积分
7664

授权用户

8#
发表于 2015-4-17 12:46:35 | 只看该作者
执行料哈 貌似不正确呢
回复 支持 反对

使用道具 举报

5

主题

36

帖子

237

积分

新手上路

Rank: 1

积分
237
9#
发表于 2015-4-25 22:37:46 | 只看该作者
请问怎么操作饿
回复 支持 反对

使用道具 举报

10#
大米粉丝  发表于 2015-5-4 09:01:09

回复

使用道具

您需要登录后才可以回帖 登录 | 注册大米会员

本版积分规则

QQ|小黑屋|大米CMS社区 ( 蜀ICP备11002200号-2广告联系:广告联系 

Powered by 大米CMS

© 2010-2020 大米CMS Inc.

快速回复 返回顶部 返回列表