-
برج هانوی(کمک فوری!)
سلام دوستان
اگه میشه کسی الگوریتم این برنامه را به من بگه من خودم می نویسمش ولی تو درآوردن الگوریتمش
مشکل دارم.:41:
برنامه از این قراره:سه تا میله داریم و تعدادی دیسک با اندازه های مختلف(تعداد دیسک ها کمتر از 16 تاست و کاربر اونو وارد می کنه ).در ابتدا تعدادی دیسک روی هر یک از میله ها قرار گرفته به نحوی که روی هر میله دیسک ها به ترتیب اندازه قرار گرفتن. یعنی هیچ دیسک بزرگتری روی دیسک کوچکتر قرار نگرفته.کاربر وارد می کنه که روی هر
کدوم از این میله ها چند تا دیسک و کدوم دیسکها (به هر دیسک بر حسب اندازه اش یه عدد بین یک و تعداد دیسک ها می ده) قرار گرفتن . بعدش ما باید تمام دیسک ها را با کمترین تعداد حرکت به میله اول منتقل کنیم به طوری که توی هر مرحله جا به جایی دیسک بزرگتر نمی تونه روی دیسک کوچکتر قرار بگیره. در آخر باید در خروجی تعداد حرکات لازم و این که هر حرکت از کدوم میله به کدوم میله است رو چاپ کنیم.
خیلی ممنون میشم اگه کسی در مورد الگوریتم این برنامه به من کمک کنه.
-
تابع بازگشتی مسئله برج هانوی :
کد:
void Hanoi (int n, char A, char B, char C)
{
if( n == 1 )
cout<<"Move a disk from "<<A<<" to "<<C<<"\n";
else
{
Hanoi (n - 1, A, B, C);
cout<<"Move a disk from "<<A<<" to "<<C<<"\n";
Hanoi (n - 1, B, A, C);
}
}
-
ببخشید این برنامه ای که نوشتین برج هانوی عادیه که در ابتدا همه ی دیسک ها رویه میله دوم هستن ولی من کدی رو می خوام که دیسک ها در ابتدا با ترتیب دلخواه روی میله ها قرار گرفته باشن!
-
ترم پیش این هانوی منو بیچاره کرد واقعا برای یه ترم اولی این مسئله فوق العاده سنگینه!
-
شما که ترم پیش این برنامه رو نوشتین می شه یه راهنمایی در مورد الگوریتمش بکنین چون من فقط تا امشب برای ارسال تمرینم فرصت دارم.
-
سلام
ممنون ازتون
منم اینو میخواستم
لطفا اگه مسائل مشهور دیگه ای هست رو بفرمایید
یا علی
-
این مسئله رو فقط و فقط با فکر کردن و گذر زمان میشه فهمید. من خودم هنوز کامل بهش مسلط نشدم. کلا خاصیت بازگشتی همینجوری خیلی راحت نمیشه فهمید. بهتر از تمرین های ساده تر شروع کنید