La création d'un triangle avec des boucles for
Je ne semble pas être en mesure de trouver la réponse à cette question-
J'ai besoin de tirer un simple triangle à l'aide de boucles.
*
***
*****
*******
*********
Je peux faire un demi triangle, mais je ne sais pas comment l'ajouter à ma boucle de courant pour créer un grand triangle.
*
**
***
****
*****
for (int i=0; i<6; i++)
{
for (int j=0; j<i; j++)
{
System.out.print("*");
}
System.out.println("");
}
Grâce-
Ici vous pouvez trouver votre solution- java4732.blogspot.in/2016/08/pyramid-programs-in-java.html
OriginalL'auteur Kerry G | 2012-07-10
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, vous devez vous assurer que vous êtes à la production d'un nombre correct de
*
symboles. Nous avons besoin pour produire 1, 3, 5 et ainsi de suite au lieu de 1, 2, 3. Ceci peut être corrigé en modifiant les variables compteur:Comme vous pouvez le voir, ce qui provoque des
i
pour commencer à1
et d'augmenter par2
à chaque étape, tant qu'il est plus petit que10
(c'est à dire,1
,3
,5
,7
,9
). Cela nous donne le nombre exact de*
symboles. Ensuite, nous avons besoin de fixer le niveau d'indentation par ligne. Cela peut être fait comme suit:Avant l'impression de la
*
symboles nous avons l'impression de certains espaces et le nombre de places varie en fonction de la ligne que nous sommes sur. Qu'est ce que la boucle avec lek
variable. Nous pouvons voir quek
effectue une itération sur les valeurs4
,3
,2
,1
et0
quandì
est1
,3
,5
,7
et9
. C'est ce que nous voulons parce que le plus grand dans le triangle que nous sommes, le plus grand nombre de places nous avons besoin de place. Plus nous avancerons vers le bas du triangle, nous avons moins de places que nous avons besoin, et la dernière ligne du triangle n'a même pas besoin du tout des espaces.OriginalL'auteur Simeon Visser
Un plaisir, la solution la plus simple:
OriginalL'auteur Marko Topolnik
J'apprécie l'OP est de nouveau à Java, de sorte méthodes pourraient être considérés comme des "avancées", mais je pense que ça vaut à l'aide de ce problème à montrer comment vous pouvez vous attaquer à un problème en le brisant en morceaux.
Nous allons réfléchir sur l'écriture d'une méthode pour imprimer une seule ligne, en disant à la méthode de numéro de ligne, c'est:
Nous avons d'imprimer un certain nombre d'espaces, puis un certain nombre d'étoiles.
Regardant l'exemple, je peux voir que (si la première ligne est 0) (5-rowNumber) espaces et (2*rowNumber + 1) étoiles.
Nous allons inventer une méthode qui imprime les lignes de caractères pour nous, et de l'utiliser:
Qui ne compile pas jusqu'à ce que nous avons fait écrire printSequence(), nous allons donc le faire:
Maintenant, vous pouvez test printSequence sur son propre, et vous pouvez test printTriangleLine sur son propre. Pour l'instant vous pouvez juste essayer par l'appel de ces méthodes directement dans
main()
... exécuter et vérifier (à vos yeux) qu'il génère:
Lorsque vous aller plus loin dans la programmation, vous aurez envie d'utiliser un framework de test unitaire comme jUnit. Au lieu de l'impression, vous seriez plus susceptibles d'écrire des choses comme printTriangleLine pour renvoyer une Chaîne de caractères (que vous souhaitez imprimer à partir d'un niveau supérieur dans votre programme), et vous devez automatiser vos tests avec des commandes comme:
Maintenant, nous avons les pièces que nous avons besoin de dessiner un triangle.
Le code que nous avons écrit est un peu plus long que les réponses d'autres personnes ont donné. Mais nous avons pu les tester à chaque étape, et nous avons des méthodes que nous pouvons utiliser à nouveau dans d'autres problèmes. Dans la vraie vie, nous devons trouver le juste équilibre entre la rupture d'un problème dans de nombreuses méthodes, ou trop peu. J'ai tendance à préférer beaucoup de très courte méthodes.
Pour le crédit supplémentaire:
System.out.print(drawTriangle())
drawTriangle(3)
oudrawTriangle(5)
OriginalL'auteur slim
D'abord penser à une solution sans code. L'idée est d'imprimer un nombre impair de *, augmentant par ligne. Puis le centre de l' * en utilisant des espaces. Sachant que le nombre maximum de * dans la dernière ligne, qui vous donnera le nombre de places au centre de la première *. Maintenant l'écrire dans le code.
OriginalL'auteur Pablo Pazos
Devoirs question?
Eh bien, vous pouvez modifier votre original 'triangle' code pour générer un inversé du "triangle" avec des espaces
Donc, ça va être comme
OriginalL'auteur Ganesh Iyer
Essayer celui-ci en Java
OriginalL'auteur loveleen
OriginalL'auteur citydeer
OriginalL'auteur Fahim Faysal
Ce sera la réponse à votre question. décommentez la a commenté le code pour afficher uniquement ligne extérieure 🙂
OriginalL'auteur Chandra
Cela vous permet d'avoir un peu plus de contrôle et plus de temps pour faire ça:
Il suffit de changer
public static int biggestoddnum
's de la valeur à ce nombre impair, vous voulez qu'il soit, et lefor(int k...)
a été testé pour fonctionner.OriginalL'auteur
Bien, il y aura deux séquences
size-n
pour les espaces et les(2*(n+1)) -1
pour les étoiles. Ici vous allez.OriginalL'auteur zawhtut