ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript印刷スターピラミッド関数の実装例

JavaScript印刷スターピラミッド関数の実装例

黄舟
黄舟オリジナル
2017-09-28 11:09:253094ブラウズ

この記事では主に、スター ピラミッドを印刷する機能を実現するための JavaScript を紹介します。具体的な例に基づいて、任意の行数のスター ピラミッド グラフィックを出力するための JavaScript の原理と関連実装テクニックを分析します。この記事

JavaScript が印刷スター ピラミッド関数を実装する方法について説明します。詳細は次のとおりです:

他の言語で書く場合もまったく同じです

C言語を学習しているときにこの質問を見たことがあると思います...

つまり、次のゴーストを出力します。

ループ構造を見たとき、私は非常に退屈に感じたので、この質問をかなり軽蔑していました、

もしそうなら。 JavaScript で書かれている場合、次のように書くことができます。これは JavaScript ですらなく、ただの HTML です:


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

ここで utf-8 エンコーディングが使用されていない理由は、utf-8 による nbsp と* フォントを使用するとレイアウトが混乱します。つまり、標準の Song フォントが使用されないため、最終結果が表示されなくなります。

とにかく、上記の内容は何行出してもコピペできるのですが、ある程度プログラミングができてビッグデータの概念がある程度できた今日、この質問を改めて見てじっくり考えてみました。質問者が、中心軸上に 20 万本の対称線を持つ星形のピラミッドを出力するように要求した場合、私は畜生でしょう。

したがって、これを実装する方法をまだ完全に理解する必要があります。実際のプログラミングではそのようなことは起こりませんが、少なくとも、後発者が C 言語について質問した場合は、この質問が依然として発生すると言われています。中心軸上に 20 万本の対称線を持つ星形のピラミッドを出力する場合、この問題を最初に実行できない場合は、その方法を知る必要があります。

1. 基本的な目標

まず、入力ボックスがポップアップし、ユーザーが奇数を入力できるようにします。結局のところ、軸対称には奇数が必要です。次に、プログラムの堅牢性についてはどうすればよいでしょうか。ユーザー入力が奇数でない場合は、プロンプトが表示され、後続のプログラムは実行されません。これについては、「JavaScript の判断と処理」で説明しました。数字」についてはここでは詳しく説明しません。

ここでは、ブラウザの負荷を考慮して、ユーザーが入力する奇数は 189 のみにします。私のコンピューターでは 189 で問題ないと思われるので、この数値を設定します。特別な意味、ランダムな入力、意図的なテストではありません。

189行を入力すると、IEはすでに「スクリプトを中止する」というプロンプトを表示していますが、中止しなくても問題ありません。

実行結果は以下の通りです:

C言語プログラムなどを書いている場合は、この値をもっと大きくしても大丈夫です!

2. 基本的な考え方

これを理解すれば、非常に簡単に書くことができます。

まず*の左側にスペースを出力するだけで、右側のスペースは出力する必要はなく、*を入力した後は直接行を変更するだけです

に分かれています。

がこのように分割されるのは、この2つが出力する*記号のためです。出力されるパーツとスペースの数が異なります。

その後、ルールを見つけるのが中学のよくある問題で、とにかく上記の法則を見つけて、プログラミングする際には問題なかったのですが、他の数学皇帝はもっとすごい表現を見つけて、私は負けました。

3. 制作プロセス

上記の考え方を理解すれば、コードは非常に単純で、条件構造とループ構造を表現します。

ここで不思議に思う人もいるかもしれませんが、nが奇数かどうかを判断するために、なぜ最初にn++を判断し、次にn%2!=0、つまりn+1が偶数かどうかを判断する必要があるのでしょうか?これは主に以下の for ループ構造に対応するためのものです……

<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>

あまり言っても泣けるので自分で体験してみます…

以上がJavaScript印刷スターピラミッド関数の実装例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。