C++実現ハノータの例の詳細
768 ワード
C++実現ハノータの例の詳細
前言:
A、B、Cの3塔があって、N個の盤(小さい時から大きい番号まで1-N)は初めはすべてA塔で、今N個の盤をすべてC塔(ハノイの塔の規則に従います)に移動して、最低の移動回数と毎回の移動の詳細を求めます.
要件:
再帰法と除去テール再帰の2つの方法で記述する必要がある.
ディスク数Nは、ユーザによって標準入力から読み込まれ、1つの整数で表されます.次に、次の例で説明するように、2つの方法を呼び出して画面に結果を出力してください(通常、1つの入力データに同じ出力結果が2回表示されます).
実装コード:
もし疑問があれば伝言を残してあるいは当駅のコミュニティに行って討論を交流して、読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!
前言:
A、B、Cの3塔があって、N個の盤(小さい時から大きい番号まで1-N)は初めはすべてA塔で、今N個の盤をすべてC塔(ハノイの塔の規則に従います)に移動して、最低の移動回数と毎回の移動の詳細を求めます.
要件:
再帰法と除去テール再帰の2つの方法で記述する必要がある.
ディスク数Nは、ユーザによって標準入力から読み込まれ、1つの整数で表されます.次に、次の例で説明するように、2つの方法を呼び出して画面に結果を出力してください(通常、1つの入力データに同じ出力結果が2回表示されます).
実装コード:
#include
using namespace std;
void move(int count,char start='a',char finish='b',char temp='c')
{
if(count>0)
{
move(count-1,start,temp,finish);
cout<0)
{
move_without_recursion(count-1,start,temp,finish);
cout<>count;
cout<
もし疑問があれば伝言を残してあるいは当駅のコミュニティに行って討論を交流して、読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!