思路:首先考虑的是层数和每层*数的关系式,层数和每层空格数的关系式,然后对比两个关系式有何关联,我们就不难写出整部程序
通过在笔记本上绘制出三角形的草图不难看出每层所能放置“ * ”和“ ”的位置数取决于最后一层“ * ”的数量,所以列出最底层“ * ”数和总层数的关系:(2×n-1)。每层“ * ”数k关系式为:(2×i-1),用每层所能放置的总位置数减去“ * ”数即为每层循环的空格数“ j ”:((2×n-1)-(2×i-1)),每层我们只循环“ * ”前面的空格即可,所以再除以2:((2×n-1)-(2×i-1))/2
首先创建一个新项目
开始编辑程序代码
1、初步对函数进行赋值
static void Main(string[] args)
{
xingsan(5);//给函数赋值
Console.ReadKey();
}
2、这次主要运用for循坏来实现*三角形的堆积
static void xingsan(int n)
{
int i;
for (i = 1; i <= n; i++)//①此前赋值为5,所以定义for循环三角形一共有五层
{
for (int j = 1; j <= ((2 * n - 1) - (2 * i - 1)) / 2; j++)//②每层循环*之前,先定义循环空格即“j”
{
Console.Write(" ");
}
for (int k = 1; k <= 2 * i - 1; k++)//③循环空格之后,开始循环“ * ”
{
Console.Write("*");
}
Console.WriteLine();//④不要忘了循环进入下一层
}
}
效果展示
完整代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace xingsan
{
class Program
{
static void Main(string[] args)
{
xingsan(5);//给函数赋值
Console.ReadKey();
}
static void xingsan(int n)
{
int i;
for (i = 1; i <= n; i++)
{
for (int j = 1; j <= ((2 * n - 1) - (2 * i - 1)) / 2; j++)
{
Console.Write(" ");
}
for (int k = 1; k <= 2 * i - 1; k++)
{
Console.Write("*");
}
Console.WriteLine();
}
}
}
}
ps:编程萌新,望各路大神多多指点(*^▽^*)