黑马程序员技术交流社区
标题:
菱形问题
[打印本页]
作者:
伪善者。
时间:
2014-3-24 21:21
标题:
菱形问题
本帖最后由 伪善者。 于 2014-3-24 22:43 编辑
如何生成一个每间隔一个空格一个*的菱形呢?
例如
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
作者:
鬼鬼
时间:
2014-3-24 21:46
static void printStar(int n)
{
//上三角
for (int i = 0; i < n; ++i)
{
for (int j = 0; j < n - i; ++j)
{
Console.Write(' ');
}
for (int k = 0; k < i+1; ++k)
{
Console.Write('*');
Console.Write(' ');
}
Console.WriteLine();
}
//下三角
for (int i = 0; i < n - 1; ++i)
{
for (int j = 0; j < i + 2; ++j)
{
Console.Write(' ');
}
for (int k = 0; k <= n - i - 2; ++k)
{
Console.Write('*');
Console.Write(' ');
}
Console.WriteLine();
}
}
复制代码
注意观察规律,再多试几次,调整一下,就可以了。
作者:
luoyilan222
时间:
2014-3-24 22:30
public static void main(String[] args) {
int row = 10;
row = (row / 2) * 2 + 1;
for (int i = 0; i < row; i++) {
if (row / 2 + 1 > i) {
for (int j = 0; j < row - i; j++) {
System.out.print(" ");
}
for (int j = 0; j < i + 1; j++) {
System.out.print("* ");
}
} else {
for (int j = 0; j < i + 1; j++) {
System.out.print(" ");
}
for (int j = 0; j < row - i; j++) {
System.out.print("* ");
}
}
System.out.println();
}
}
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * *
* * * *
* * *
* *
*
作者:
伪善者。
时间:
2014-3-24 22:43
谢谢两位的帮助
作者:
百川
时间:
2014-3-25 11:42
本帖最后由 百川 于 2014-3-25 12:02 编辑
输出菱形的简单算法:
for (int i = 1; i < 2 * n; i++)
{
for (int j = 1; j < 2 * n; j++)
{
if (Math.Abs(j - n) + Math.Abs(i - n) >= n)
{
Console.Write(" ");
}
else if ((i + j) % 2 == 0)
{
Console.Write("*");
}
else
{
Console.Write(" ");
}
}
Console.WriteLine();
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2