fork download
  1. using System;
  2.  
  3. namespace challenge153
  4. {
  5. class Program
  6. {
  7. static void Main(string[] args)
  8. {
  9. uint n = uint.Parse(Console.ReadLine());
  10. if (n == 1)
  11. {
  12. Console.WriteLine(1);
  13. }
  14. else
  15. {
  16. uint[][] layer = getLayer(n);
  17. for (uint i = 2; i < n - 1; i++)
  18. {
  19.  
  20. }
  21. printLayer(layer);
  22. }
  23. Console.ReadLine();
  24. }
  25.  
  26. public static uint[][] getLayer(uint n)
  27. {
  28. uint[][] layer = new uint[n][];
  29. for (int i = 0; i < n; i++)
  30. {
  31. layer[i] = new uint[i+1];
  32. }
  33. //get Perimeter
  34. layer[0][0] = layer[n-1][0] = layer[n-1][n-1] = 1;
  35. uint ratioX = 1;
  36. uint ratioY = n - 1;
  37. uint currentNumber = 1;
  38. do
  39. {
  40. currentNumber = (currentNumber * ratioY) / ratioX;
  41. layer[ratioX][0] = layer[n-1][ratioX] = layer[n-1-ratioX][n-1-ratioX] =
  42. layer[ratioX][ratioX] = layer[n-1-ratioX][0] = layer[n-1][n-1-ratioX] = currentNumber;
  43. ratioX++;
  44. ratioY--;
  45. } while (ratioX <= ratioY);
  46. //fill in the rest
  47. for (uint i = 2; i < n-1; i++)
  48. {
  49. ratioX = 1;
  50. ratioY = i;
  51. currentNumber = layer[i][0];
  52. do
  53. {
  54. currentNumber = (currentNumber * ratioY) / ratioX;
  55. layer[i][ratioX] = layer[i][i-ratioX] = currentNumber;
  56. ratioX++;
  57. ratioY--;
  58. } while (ratioX <= ratioY);
  59. }
  60. return layer;
  61. }
  62.  
  63. public static void printLayer(uint[][] layer)
  64. {
  65. for (int i = 0; i < layer.Length; i++)
  66. {
  67. for (int j = 0; j < layer.Length - i - 1; j++)
  68. {
  69. Console.Write(' ');
  70. }
  71. for (int j = 0; j < layer[i].Length; j++)
  72. {
  73. Console.Write("" + layer[i][j] + " ");
  74. }
  75. Console.WriteLine();
  76. }
  77. }
  78. }
  79. }
Success #stdin #stdout 0.04s 33960KB
stdin
14
stdout
             1 
            13 13 
           78 156 78 
          286 858 858 286 
         715 2860 4290 2860 715 
        1287 6435 12870 12870 6435 1287 
       1716 10296 25740 34320 25740 10296 1716 
      1716 12012 36036 60060 60060 36036 12012 1716 
     1287 10296 36036 72072 90090 72072 36036 10296 1287 
    715 6435 25740 60060 90090 90090 60060 25740 6435 715 
   286 2860 12870 34320 60060 72072 60060 34320 12870 2860 286 
  78 858 4290 12870 25740 36036 36036 25740 12870 4290 858 78 
 13 156 858 2860 6435 10296 12012 10296 6435 2860 858 156 13 
1 13 78 286 715 1287 1716 1716 1287 715 286 78 13 1