2010-07-09 4 views
2

Un collègue me demande d'imprimer un triangle (de n'importe quelle forme) en utilisant une seule variable et en une seule boucle. Je le fais de cette façon:Comment imprimer un triangle en utilisant une seule variable et dans une seule boucle?

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(); 
     } 
    } 
} 

je l'espère, il doit y avoir une meilleure façon de le faire. Vous en connaissez un?

EDIT:

Tim me demande que diriez-vous imprimer un triangle sans utiliser la variable et la boucle. Aie! Je pensais et pensais encore :) vous savez comment cela peut être fait?

+0

Semble raisonnable. Un défi pour imprimer un triangle sans boucles et/ou sans variables pourrait être plus amusant :) –

+0

Tim yah qui sera plus amusant :) –

+1

Mieux comment? ______ – Blorgbeard

Répondre

1

J'aime votre solution, pourquoi avez-vous besoin d'un meilleur moyen?

Personnellement, je serais allé avec une boucle while au lieu:

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

Mais cela ne change pas grand-chose.

+0

C'est beaucoup mieux, Setephen :) Merci. –

1

Utilisez la fonction Recursion pour éliminer les boucles - vous avez toujours besoin d'une variable.

OTTOMH (plus ont pas codé en C# dans un temps loooooooong)

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

Ne paramètres sont considérés comme des variables?

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

Ce absolument bien, mec :) –

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

Pas de boucle, aucune variable (vous voyez l'idée)

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

répond aux exigences. ;)

+0

vous vivez dans un monde très intelligent. –

Questions connexes