日期:2014-05-20  浏览次数:20919 次

请教高手帮忙
如何输出
  1
  222
  33333
 4444444
555555555
 4444444
  33333
  222
  1 


------解决方案--------------------
从1开始,每次打印变数加 2 ,到了5之后,开始减2,依次输出
------解决方案--------------------
是打印菱形吧?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Answer
{
/// <summary>
/// 打印菱形的类
/// </summary>
class DiamondPrint
{
/// <summary>
/// 菱形的边长
/// </summary>
private int width;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="_width">菱形的边长</param>
public DiamondPrint(int _width)
{
width = _width;
}
/// <summary>
/// 计算要打印的菱形的最长行的长度
/// </summary>
/// <returns>最长行的长度</returns>
private int LongestRow()
{
if (width == 1)
return 1;
else
return (width - 2) * 4 + 3;
}
/// <summary>
/// 计算菱形的行数
/// </summary>
/// <returns>行数</returns>
private int RowNum()
{
return (width - 1) * 2 + 1;
}
/// <summary>
/// 菱形的每一行的集合
/// <para>每一行均为string</para>
/// </summary>
/// <returns>行的集合</returns>
public List<string> DiamondRows()
{
//菱形的前半部分行的集合,没有填充空格
List<string> HalfRowNS = HalfRowsNoSpace();
//菱形所有行的容器
List<string> diaRow = new List<string>();
//循环为前半部分行添加空格
for (int i = 0; i < width; i++)
{
string s = HalfRowNS[i];
//添加空格直到其长度等于最大行
while (s.Length < LongestRow())
{
s = " " + s + " ";
}
diaRow.Add(s);
}
//以中间行为对称轴,填充菱形后半部分的行
for (int i = width + 2; i < RowNum() + 2; i++)
{
diaRow.Add(diaRow[width * 2 - i]);
}
return diaRow;
}
/// <summary>
/// 菱形前半部分的行,(未填充空格)
/// </summary>
/// <returns>未填充空格的前半部分的行</returns>
private List<string> HalfRowsNoSpace()
{
//前半部分行容器
List<string> halfRows_no = new List<string>();
//第一行为固定的
string firstRow = "*";
//第二行为固定的
string secondRow = "0" + firstRow + "0";
//添加第一行
halfRows_no.Add(firstRow);
//若只有一行,则返回不添加后面的行
if (RowNum() == 1)
{
return halfRows_no;
}
//添加第二行
halfRows_no.Add(secondRow);
//若只有两行,也返回
if (RowNum() == 2)
{
halfRows_no.Add(firstRow);
return halfRows_no;
}
//循环添加后面的行,后面的行均是前一行前后拼接指定字符串形成
for (int i = 2; i < width; i++)
{
halfRows_no.Add("0*" + halfRows_no[i - 1] + "*0");
}
return halfRows_no;
}
}
}
测试代码:
static void Main(string[] args)
{