int m = 5;
1 for (int i = 1; i <= m; i++)
{
2 for (int j = 0; j < m - i; j++)
{
Console.Write(" ");
}
3 for (int n = 0; n < 2 * i - 1; n++)
{
Console.Write("*");
}
Console.WriteLine();
}
4 for (int i = 1; i <= m-1 ; i++)
{
5 for (int j = 0; j < i; j++)
{
Console.Write(" ");
}
6 for (int j = 0; j < (m - i) * 2 - 1; j++)
{
Console.Write("*");
}
Console.WriteLine();
}
Console.ReadKey();
(一)等腰三角形
1.1 思路解析
先输出空格,再输出星号。空格递减,星号递增。递增的关系(2*i-1);,第一行4个空格1个星号,第二行3个空格3个星号,第三行2个空格5个星号。依次类推,遍历完输出结果应该是一个等腰三角形。
(1) 1 for循环遍历行号,第一行有一个星号,从1开始遍历,到i<=5结束,所以遍历了5次
2 for循环遍历空格,因为1 for遍历5次,所以第一行输出结果应该是四个空格加一个星号
空格数不能等于行数,因此 m-i 就等于第一行的空格数。
3 for循环遍历星号,第一行和后面行数的关系 2*i-1
(二)菱形
1.在等腰三角形的基础上输出倒三角
倒三角的第一行应该是m-1
空格递增,星号递减
第一行和后面行数的关系(m - i) * 2 - 1