Maison  >  Article  >  interface Web  >  Fonction de pyramide d'étoiles d'impression JavaScript

Fonction de pyramide d'étoiles d'impression JavaScript

小云云
小云云original
2018-01-30 13:19:473356parcourir

Cet article présente principalement JavaScript pour réaliser la fonction d'impression de la pyramide en étoiles. Il analyse le principe et les techniques de mise en œuvre associées de JavaScript pour générer un nombre donné de lignes de graphiques de pyramide en étoiles sur la base d'exemples spécifiques auxquels les amis qui en ont besoin peuvent se référer. ça. J'espère que ça peut aider tout le monde.

C'est exactement la même chose pour vous d'écrire dans d'autres langues

Je suppose que vous avez vu cette question lorsque vous appreniez le langage C...

C'est-à-dire, imprimer ce qui suit Le truc fantôme :

Quand j'ai vu la structure de la boucle, je me suis senti très ennuyé, alors j'ai dédaigné cette question et n'y ai pas réfléchi attentivement,

Parce que si c'est écrit en JavaScript, ça peut être écrit comme ça Ce n'est même pas du JavaScript, c'est juste un html :


<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=gb2312"/>
</head>
<body>
&nbsp;&nbsp;*
&nbsp;***
*****
&nbsp;***
&nbsp;&nbsp;*
</body>
</html>

Le. La raison pour laquelle le codage utf-8 n'est pas utilisé ici est parce que utf-8. Le traitement de nbsp et de la police * entraînera une confusion dans la composition, c'est-à-dire que les polices Song standard ne seront pas utilisées, ce qui empêchera le résultat final de être visualisé.

Quoi qu'il en soit, je peux copier et coller le contenu ci-dessus, quel que soit le nombre de lignes que vous publiez, mais aujourd'hui, lorsque j'ai programmé une certaine quantité et que j'ai quelques concepts Big Data, j'ai revu cette question, et J'ai soigneusement Après y avoir réfléchi un moment, si la personne qui a posé la question demandait de sortir une pyramide en forme d'étoile avec 200 000 axes de symétrie sur l'axe central, je serais damné.

Vous devez donc encore bien comprendre comment mettre en œuvre cela. Bien qu'une telle programmation ne se produise pas dans la programmation réelle, on dit que cette question se posera encore dans certaines interviews ennuyeuses. Au moins, les retardataires vous poseront la question C. langage Lorsqu'on vous demande, si vous produisez une pyramide d'étoiles avec 200 000 axes de symétrie sur l'axe central, vous devez quand même savoir comment le faire. Si vous ne pouvez pas répondre à cette question la première fois, vous ne pouvez pas le faire.

1. Objectifs de base

Tout d'abord, une zone de saisie apparaît, permettant à l'utilisateur de saisir un nombre impair. Après tout, une symétrie axiale. nécessite un nombre impair,
Ensuite, pour la robustesse du programme, il est nécessaire de juger ce que l'utilisateur saisit. Si l'entrée n'est pas un nombre impair, une invite apparaîtra et le programme suivant ne sera pas exécuté. juger un nombre impair en JavaScript ? J'en ai déjà parlé dans « Jugement et traitement des nombres en JavaScript » », je n'entrerai donc pas dans les détails ici.

Compte tenu de la charge du navigateur, ici, j'autorise uniquement le nombre impair saisi par l'utilisateur à 189. Vous pouvez l'augmenter un peu, 189 me convient, j'ai donc défini ce nombre. n’a aucune signification particulière. Il a été saisi au hasard et n’a pas été testé intentionnellement.

Entrez une ligne de 189, et IE a déjà affiché une invite pour "abandonner le script", mais il n'y a pas de problème si vous n'abandonnez pas !

Les résultats en cours d'exécution sont les suivants :

Si vous écrivez un programme en langage C ou d'autres programmes, cette valeur peut certainement être définie plus grande !

2. Idées de base

Une fois qu'on a compris cela, c'est très simple à écrire.

Tout d'abord, nous n'avons besoin que d'afficher des espaces sur le côté gauche de *. Il n'est pas nécessaire d'afficher des espaces sur le côté droit. Après avoir saisi *, enveloppez simplement. la ligne

en deux parties, une partie est lorsque i030df7104b7e9cdfd56b253d966b6fc8n/2 dans la moitié inférieure. La raison pour laquelle

<.> est divisé ainsi parce que le signe * dans la sortie de ces deux parties est différent du nombre d'espaces en sortie.

Après cela, c'était un problème courant au collège de trouver les règles. Quoi qu'il en soit, j'ai trouvé les règles ci-dessus, et il n'y a eu aucun problème lors de la programmation. D'autres empereurs mathématiques ont trouvé des expressions plus géniales, et j'étais. vaincu.

3. Processus de production

Le code est très simple, c'est l'expression de la structure conditionnelle et de la structure en boucle. des idées, cela va sans dire.

Certaines personnes peuvent trouver cela étrange ici, pourquoi devrais-je d'abord juger n++ puis n%2!=0, c'est-à-dire juger si n+1 est un nombre pair pour juger si n est un nombre impair,

L'essentiel ici est de répondre aux éléments suivants pour la structure de la boucle...


<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=gb2312"/>
</head>
<body>
</body>
</html>
<script>
var i,j,k,n;
n=window.prompt("请输入要输出的行数n,为了形成轴对称,所以你输出的必须是奇数!");
if(isNaN(n)||!n)
  alert("你输入的不是数!");
else{
  n++;
  if(n%2!=0)
    alert("你输入的不是奇数!");
  else if(n>190){
    alert("不要这么大嘛!臣妾做不到啊!");
  }
  else{
    for(i=1;i<n;i++){
      if(i<=n/2){
        for(k=n/2-i;k>0;k--)
          document.write("&nbsp;");
        for(j=0;j<2*i-1;j++)
          document.write("*");
          }
      else{
        for(k=i-n/2;k>0;k--)
          document.write("&nbsp;");
        for(j=0;j<2*(n-i)-1;j++)
          document.write("*");
        }
      document.write("<br>");
    }
  }
}
</script>
Recommandations associées :


Méthode JavaScript d'impression des informations de débogage (Jquery)

Script Javascript pour imprimer une partie du contenu de la page Web_compétences Javascript

JavaScript imprimer un exemple de contenu iframe compétences code_javascript

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn