-4

输入数字:" " <- 如果我在这里输入 7,输出将是 7x7 的星号框。但条件是在那个星号盒子里面,有一颗钻石。

*******
*** ***
**   **
*     *
**   **
*** ***
*******

使用数组的程序是什么?“导入 java.io.*……”

4

1 回答 1

2

我不会给出完整的代码,因为这看起来像家庭作业,但这里是您可以使用的一种可能算法的概述。

(i, j)对于网格中的每个位置,计算距钻石中心的曼哈顿距离。如果它超过了菱形的“半径”,打印一个*否则打印一个空格。

如果菱形的中心是(x, y)曼哈顿到该位置的距离,(i, j) 则由以下公式给出:

int distanceFromCenter = Math.abs(x - i) + Math.abs(y - j);

请注意,如果您使用欧几里得距离而不是曼哈顿距离的公式,您将得到一个圆形而不是菱形,尽管在 7x7 分辨率下可能很难看出这两种形状之间的差异。

于 2012-07-27T09:46:54.087 回答