黑马程序员技术交流社区

标题: 如何使用交错数组打印杨辉三角形?如何动态改变数组的长度? [打印本页]

作者: hongiqnglik    时间: 2013-8-12 21:49
标题: 如何使用交错数组打印杨辉三角形?如何动态改变数组的长度?
如何使用交错数组打印杨辉三角形?如何动态改变数组的长度?
作者: 咖喱猫    时间: 2013-8-12 23:45
话说是不是这个意思:
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;

  5. namespace 杨辉三角形
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.              int length = 0;//三角形的长度
  12.             Console.Write("输入杨辉三角长度:");
  13.             length = Convert.ToInt32(Console.ReadLine());
  14.             int[][] a = new int[length][];//二维数组
  15.             //遍历赋值增量
  16.             for (int i = 0; i < a.Length; i++)
  17.             {
  18.                 a[i] = new int[i + 1];
  19.             }
  20.             for (int j = 0; j < a.Length; j++)
  21.             {
  22.                 a[j][0] = 1;      //第1列的元素赋值
  23.                 a[j][j] = 1;      //每1列最右边元素赋值
  24.                 for (int m = 1; m < a[j].Length - 1; m++)
  25.                     a[j][m] = a[j - 1][m - 1] + a[j - 1][m];//其余元素的值由杨辉公式计算
  26.             }
  27.             for (int i = 0; i < a.Length; i++) //遍历数组输出三角形
  28.             {

  29.                 for (int j = 0; j < a[i].Length; j++)
  30.                     Console.Write("{0}\t", a[i][j]);
  31.                 Console.Write("\n");
  32.             }
  33.             Console.Read();
  34.         
  35.         }
  36.     }
  37. }
复制代码

作者: 彭家贰小姐    时间: 2013-8-13 01:32
本帖最后由 彭家贰小姐 于 2013-8-13 01:35 编辑

交错数组 杨辉三角[交错数组的长度是用户动态输入的]
  1. using System;
  2. using System.Linq;

  3. namespace test31
  4. {
  5. internal class Program
  6. {
  7. private static void Main(string[] args)
  8. {
  9. Console.Write("请输入行数:");
  10. var nline = Convert.ToInt32(Console.ReadLine());
  11. var a = new int[nline][]; //定义由nline个元素组成的数组
  12. for (var n = 0; n < nline; n++) //每个元素的初始化
  13. {
  14. a[n] = new int[n + 2];
  15. }
  16. a[0][0] = 1;
  17. for (var i = 1; i < a.Length; i++) //交错数组中值的赋予
  18. {
  19. for (var j = 0; j < a[i].Length; j++)
  20. {
  21. if (j == 0)
  22. {
  23. a[i][j] = 1;
  24. }
  25. else if (j == i + 1)
  26. {
  27. a[i][j] = 0;
  28. }
  29. else
  30. {
  31. a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
  32. }
  33. }
  34. }
  35. foreach (var b in a) //数组的打印
  36. {
  37. //为了实现杨辉三角的居中对齐
  38. var str = "";
  39. if (b.Count() <= a.Count()) //防止报错
  40. {
  41. str = str.PadLeft(a.Count() - b.Count() + 1, '\t');
  42. Console.Write(str);
  43. }
  44. foreach (var c in b)
  45. {
  46. if (c != 0)
  47. {
  48. Console.Write(" " + c + "\t\t");
  49. }
  50. }
  51. Console.WriteLine();
  52. }
  53. Console.ReadKey();
  54. }
  55. }
  56. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2