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

ハノイの塔問題


ハノイの塔はパズルの問題です。 3つのスタンドとn枚のディスクがあります。最初に、ディスクは最初のスタンドに配置されます。ディスクを3番目のスタンドまたは目的のスタンドに配置する必要があります。2番目のスタンドまたは補助スタンドは補助スタンドとして使用できます。

  • ただし、従うべきルールがいくつかあります。
  • 移動ごとに1枚のディスクしか転送できません。
  • スタンドからピックアップできるのは一番上のディスクのみです。
  • 小さいディスクの上部に大きいディスクは配置されません。

この問題は、再帰によって簡単に解決できます。最初に、再帰を使用して、一番上の(n-1)ディスクをソースから補助スタンドに配置し、次に最後のディスクをソースから宛先に配置し、次に(n-1)ディスクを補助スタンドから宛先スタンドに再帰的に配置します。

入力と出力

Input:
Number of discs: 3
Output:
1. Move disk 1 from A to C
2. Move disk 2 from A to B
3. Move disk 1 from C to B
4. Move disk 3 from A to C
5. Move disk 1 from B to A
6. Move disk 2 from B to C
7. Move disk 1 from A to C

アルゴリズム

toh(n, s, a, d)

入力: ディスクの数、ソース、補助、宛先。

出力: 適切なルールを維持しながら、ディスクをソースから宛先に移動する手順。

Begin
   if n = 1, then
      display move disc from s to d
   toh(n-1, s, d, a)

   display move disc from s to d
   toh(n-1, a, s, d)
End

#include<iostream>
using namespace std;

void TOH(int n, char s, char a, char d) {
   static int count = 0;          //store number of counts
   if(n == 1) {
      count++;
      cout << count<< ". Move disk " << n << " from "<<s <<" to "<<d<<endl;
      return;      //base case, when only one disk
   }

   TOH(n-1, s, d, a);               //recursive call the function
   count++;
   cout << count<< ". Move disk " << n << " from "<<s <<" to"<<d<<endl;
   TOH(n-1, a, s, d);
}

int main() {
   int n;
   cout << "Enter the number of disks: ";
   cin >> n;
   TOH(n, 'A','B','C');
}

出力

Enter the number of disks: 3
1. Move disk 1 from A to C
2. Move disk 2 from A to B
3. Move disk 1 from C to B
4. Move disk 3 from A to C
5. Move disk 1 from B to A
6. Move disk 2 from B to C
7. Move disk 1 from A to C

  1. [解決済み] Windows がハードディスクの問題を検出しました

    Windows が検出したハードディスクの問題を修正します。 Windows のバージョンを最近アップグレードした場合、「Windows がハード ディスクの問題を検出しました」というエラー メッセージが表示される可能性があります。このエラー メッセージが頻繁に表示され、このエラーが表示された後、コンピューターがフリーズまたはスタックします。エラーの原因は、エラーに既に記載されているハードディスクの故障です。エラーメッセージは次のとおりです: Windows がハード ディスクの問題を検出しました 情報の損失を防ぐためにファイルをすぐにバックアップしてから、コンピューターの製造元に連絡

  2. Windows 10、8.1、および 7 で 100 ディスク使用量の問題を解決するための 5 つのヒント

    起動時にシステムがフリーズしたり、クリックにアプリケーションが応答しないなど、Windows 10 の更新プログラムをインストールした後に Windows 10 のパフォーマンスが低下した場合。また、タスク マネージャーを確認すると、システム ドライブが 100 で実行されていることがわかり、オペレーティング システムの速度が低下する場合があります。多くのユーザーが、この問題はハードディスク ドライブ (HDD) とソリッド ステート ドライブ (SSD) の両方に影響すると報告しています。 100 ディスク使用量を引き起こすさまざまな問題があります Windows 10 の問題。破損したシ