Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

ハノイの塔のCプログラム


ハノイの塔は数学パズルです。これは、3つのロッドと、任意のロッドにスライドできるさまざまなサイズの多数のディスクで構成されています。パズルは、1つのロッド上でサイズの昇順で、一番上で最小の、きちんとしたスタックのディスクから始まります。 3番目のロッドで同じスタックを取得する必要があります。

パズルの目的は、次の簡単なルールに従って、スタック全体を別のロッドに移動することです-

  • 一度に移動できるディスクは1つだけです。

  • 各移動は、スタックの1つから上位のディスクを取り出し、それを別のスタックの上に配置することで構成されます。つまり、ディスクは、スタックの最上位のディスクである場合にのみ移動できます。

  • 小さいディスクの上にディスクを置くことはできません。

サンプル

入力 − 3

出力 −AからB

AからC

BからC

AからB

CからA

CからB

AからBの説明-再帰関数を使用して、ハノイの塔を解きます。

#include<stdio.h>
void TOH(int n,char x,char y,char z) {
   if(n>0) {
      TOH(n-1,x,z,y);
      printf("\n%c to %c",x,y);
      TOH(n-1,z,y,x);
   }
}
int main() {
   int n=3;
   TOH(n,'A','B','C');
}

出力

A to B
A to C
B to C
A to B
C to A
C to B
A to B

  1. 配列の積のCプログラム

    n個の要素の配列arr[n]が与えられた場合、タスクはその配列のすべての要素の積を見つけることです。 7つの要素の配列arr[7]があるように、その製品は次のようになります 例 Input: arr[] = { 10, 20, 3, 4, 8 } Output: 19200 Explanation: 10 x 20 x 3 x 4 x 8 = 19200 Input: arr[] = { 1, 2, 3, 4, 3, 2, 1 } Output: 144 以下で使用されるアプローチは次のとおりです − 配列入力を取得します。 そのサイズを見つけます。 配列を反復処理し、その配列の

  2. Cでのクリスマスツリーのプログラム

    ここで、1つの興味深い問題が発生します。この問題では、クリスマスツリーをランダムに印刷する方法を見ていきます。そのため、ツリーはクリスマスツリーのライトのようにちらつきます。 クリスマスツリーを印刷するために、さまざまなサイズのピラミッドを上下に並べて印刷します。装飾的な葉の場合、ランダムな文字が指定された文字のリストから印刷されます。高さとランダム性は調整可能です。 ここでは、ツリーを生成した後、画面全体がクリアされてから再度生成されます。そのため、これはちらつきツリーのように見えます。 例 #include <stdio.h> #include <stdlib.h&g