首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >square for loop pattern

square for loop pattern
EN

Stack Overflow用户
提问于 2011-11-26 21:47:03
回答 9查看 5.3K关注 0票数 2

我正面临着一个我的大脑无法处理的问题!我需要做一个循环来创建像这样的模式:

代码语言:javascript
复制
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1

因此,内部数字越大,但我就是不明白如何创建这样的循环我的AI需要这个,这样我就可以为实体创建感兴趣的区域,所以这不是学校的作业,我到目前为止已经尝试过了

代码语言:javascript
复制
for(int i = 0; i < rows; i++){
   for(int j = 0; j < cols; j++){
      System.out.print("?");
   }
   System.out.println();
}

我真的想不出一种方法来获得代表它在哪个级别上的数字!我一直在尝试将它可视化到自己身上,等等,以弄清楚如何创建它或创建它的最佳方式。请帮助我和我的大脑远离头痛!:)我想要的是简单的伪代码或任何易于理解的语言的代码(如java、c++、c……)

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2011-11-26 21:56:12

你可以这样做:

代码语言:javascript
复制
for(int i = 0; i < rows; i++){
   for(int j = 0; j < cols; j++){
      // The distance to the left, right, top and bottom border:
      int dl = j;
      int dr = cols - (j+1);
      int dt = i;
      int db = rows - (i+1);

      // The distance to the closest border:
      int d = Math.min(Math.min(dl, dr), Math.min(dt, db));

      // Print according number
      System.out.print(d+1);
   }
   System.out.println();
}
票数 4
EN

Stack Overflow用户

发布于 2011-11-26 21:56:46

您需要的数字是水平或垂直方向到边的最小距离。在伪代码中:

代码语言:javascript
复制
min(i, j , n - 1 - j, n - 1 - i) + 1
票数 2
EN

Stack Overflow用户

发布于 2011-11-26 21:56:40

让你的"?“be 1+ i,j,(-i-1)行和(cols-1)-j的最小值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8278806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档