1、第一行有1列,二行有2列,三行3列
2、每一行的第一个数和最后一个数字都是1
3、其余的数字都是前一行的前一列数字和前一行的同一列数字之和
打印出前10行~
帮帮忙~
2、每一行的第一个数和最后一个数字都是1
3、其余的数字都是前一行的前一列数字和前一行的同一列数字之和
打印出前10行~
帮帮忙~
解决方案 »
- 储存过程返回三个表Fill到DataSet中速度太慢
- textbox每次重新获得焦点后,中文状态下依然只能输入英文.
- WinForm TextBox模拟Google搜索功能?(根据拼音搜索汉字) [图]
- 关于显示PDF的AxcroPDF.dll
- 关于session验证问题
- 如何根据句柄获得窗口,并使其获得焦点?
- 郁闷TMD 甩分发泄下(继续散)
- Help me! 在局域网中传递一个图形对象
- 远程访问问题(remoting Framework)!
- 在WINFORM中嵌入word程序
- 求一个C# 的web框架源码或链接,找了一上午居然没找到可可用的,功能一般即可,不能有dll的
- 如何对比连个文件是否相同~
int[,] a = new int[10,10];
for (int i = 0; i < 10; i++)
{
a[i,0] = 1;
a[i,i] = 1;
}
for (int i = 2; i < 10; i++)
{
for (int j = 1; j < i; j++)
{
a[i,j] = a[i - 1,j - 1] + a[i - 1,j];
}
}
for (int i = 0; i < 10; i++)
{
for (int j = 0; j <= i; j++)
{
Console.Write(a[i,j] + "\t"); //Write:向输入流写入字符或者字符串,"\t"为水平Tab,这个是转义字符。
}
Console.WriteLine("\t"); //Writeline:向输出流写入文本行,有回车终止文本行。
}
LZ请参详.......
谢谢!
没错,实际上就是打印出杨辉三角.....
杨辉三角是这样的 1
1 1
1 2 1
1 3 3 1
1 4 6 4 1左右对称,所以把它按对称轴分开并且空缺的位置用0补上,看下效果00001
00010
00102
01030
10406可以看出来这是个三角矩阵。1.在这个下三角的矩阵中(不看上三角的那些0),每列都是数字和0间隔的2.每排最后一个元素的值是前一排倒数第二个元素的二倍。3.在每排数字中数字1只出现1次4.每排除了数字1和最后一个元素,每个元素(非0、1)的值都是上一排与其对应位置的相邻的两元素的和.5.整个过程只用1个一维数组,所以用了2个临时变量。一个是用来存放被0覆盖但下次计算仍然需要的,还有一个是存放最后一个元素的值。就是2中说到的。这样就得到了这个算法。
using System;namespace yanghui
{
class Program
{
static void Main()
{
int n = Convert.ToInt32(Console.ReadLine());
tr(n);
}
static void tr(int n)
{
int[] temp_arr = new int[n + 1];
int temp = 0, last = 0;
int rule;
for (int j = 0; j <=n; j++)
{
rule = n;
if (j == 0)
{
temp_arr[n] = 1;
} else
{
last = temp_arr[n - 1] * 2;
for (int i = 0; i <= n; i++)
{
if (temp_arr[i] == 1)
{
temp_arr[i - 1] = temp_arr[i];
temp = temp_arr[i];
temp_arr[i] = 0;
}
else
{
if (temp_arr[i] != 0)
{
temp_arr[i - 1] = temp_arr[i] + temp;
temp = temp_arr[i];
temp_arr[i] = 0;
}
}
}
temp_arr[n] = last;
}
while (rule >= -n)
{
if (temp_arr[n - Math.Abs(rule)] == 0)
Console.Write(" ");
else
Console.Write("{0}", temp_arr[n - Math.Abs(rule)]);
rule--;
}
Console.Write("\n");//fdfdfasdf
}
}
}
}
由于用了半个三角形,所以在输出的时候用了一点小技巧,就是绝对值,来正常的显示整个三角形。