2010-07-09 63 views
2

一位同事要求我使用单个变量并在单个循环中打印一个三角形(任意形状)。我做这种方式:如何使用单个变量和单个循环打印三角形?

Program.cs的

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace Triangle 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 

      var triangle = "*"; 
      do { Console.WriteLine(triangle); } 
      while ((triangle += "*").Length < 10); 

      Console.ReadLine(); 
     } 
    } 
} 

我希望,必须有这样做的更好的方法。你知道吗?

编辑:

添问我怎么样打印,而无需使用变量和循环的三角形。哎哟! 我以为还在想着:)你 知道它是如何做到的?

+0

似乎合理。打印一个没有循环和/或没有变量的三角形的挑战可能会更有趣:) – 2010-07-09 12:28:51

+0

Tim yah会更有趣:) – 2010-07-09 12:29:59

+1

更好的方法是什么?______ – Blorgbeard 2010-07-09 12:30:53

回答

1

我喜欢你的解决方案,为什么你需要更好的方法?

就个人而言,我已经走了,而循环,而不是:

 var triangle = ""; 
     while ((triangle += "*").Length < 10) 
      Console.WriteLine(triangle); 

但是,这并没有太大变化。

+0

这就好多了,Setephen :)谢谢。 – 2010-07-09 12:34:33

1

使用递归消除循环 - 您仍然需要一个变量。

OTTOMH(加上没有编写C#在loooooooong时间)

bool PrintLine(int NumStars) 
{ 
Console.WriteLine(space(NumStars).Replace (" ", "*")); 
if (NumStars < 20) 
    PrintLine (NumStars); 
} 
2

不要参数当作变量?

Console.WriteLine(
    Enumerable.Range(2, 9) 
       .Aggregate("*", (s, i) => s + Environment.NewLine + new string('*', i))); 
+0

这绝对不错,伙计:) – 2010-07-09 13:07:04

0
Process.Start("http://www.google.com/images?q=triangle"); 
0

没有循环,没有变量(你的想法)

Console.WriteLine("*"); 
Console.WriteLine("**"); 
Console.WriteLine("***"); 
Console.WriteLine("****"); 
Console.WriteLine("*****"); 

符合要求。 ;)

+0

你住在一个非常聪明的世界。 – 2010-07-12 05:02:09