رفتن به مطلب
ایران سی اف سی

آموزش ++c

امتیاز دادن به این موضوع:


king75

براي جلوگیری از تکراری شدن تاپیک ها قبل از ارسال از قسمت جستجوی سایت استفاده کنید. تاپیک های تکراری حذف خواهند شد.

تاپیک ها باید در انجمن های مناسب زده شوند. قبل از ارسال تاپیک عنوان انجمن را بخوانید.

ارسال‌های توصیه شده

برج هانوی , معمایی است که از سه میله و N دیسک با اندازه های متفاوت . فرض شود که اگر دیسکی روی یک میله باشد , فقط دیسکی که قطر آن کوچکتر است می تواند بالای آن قرار گیرد مسئله چنین است که هر بار فقط یک دیسک انتقال یابد .

را حل : این مسئله با استفاده از یک الگوریتم باز گشتی حل می شود .

-اگر فقط یک دیسک باشد آنگاه آن را به میله مورد نظر انتقال می دهیم .

-اگر n > 1 باشد ; برای این کار n-1 دیسک بالای میله 1 را به میله 2 انتقال می دهیم . حالا دیسک پایینی میله 1 را ثابت باقی می ماند . حال دیسک باقیمانده در در میله 1 را به میله 3 منتقل میکنیم . سرانجام بار دیگر بصورت بازگشتی الگوریتم را فرا خانده تا n - 1 دیسک میله دو را به 3 منتقل کند .

اکنون موفق شدیم n دیسک را از میله 1 به 3 منقل کنیم .

این مسئله در درسهایی مانند ساختمان گسسته و ساختمان داده مورد بحث وبررسی قرار می گیرد .

/*

Algorithmic solution is as follows

1) if TopN==1, move the single disc from A to C and stop.

2) Move the top n-1 discs from A to B, using C as Inter.

3) Move the remaining disc from A to C.

4) Move the n-1 discs from B to C, using A as destination(dest).

*/

#include <stdio.h>

#include <conio.h>void tower(int,char,char,char); /*prototype*/

int main()

{

int ndisk;

clrscr();

printf("\n Enter number of disks <<<::: ");

scanf("%d",&ndisk);

tower(ndisk,'A','B','C'); /*Calling Function*/

getch();

return 0;

} /* End of program */

/********************************************/

// src = Source | aux = Auxiliry | dest = Destination

void tower(int topN, char src,char aux,char dest)

{

if(topN == 1)

{

printf("\n Disk 1 from %c to %c ",src,dest);

}

else

{

tower(topN-1,src,dest,aux); //src to aux

printf("\n Disk %d from %c to %c ",topN,src,dest);

tower(topN-1,aux,src,dest); //aux to dest

}

}

گرافیک ج سی

www.graphicgc.com

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

  • پاسخ 0
  • ایجاد شده
  • آخرین پاسخ

بیشترین ارسال‌ها در این موضوع

روزهای محبوب

بیشترین ارسال‌ها در این موضوع

روزهای محبوب

در تاپیک ها، اگر سوال يا نظر خاصي نداريد لطفا فقط از دکمه می پسندم و ... استفاده کنيد. نظراتي مانند مرسی، خوب بود، ممنون و ... شامل اسپم هستند و باعث کاهش کيفيت پست ها مي شوند.

بالا آوردن تاپیک ها و پست ها قبل از 48 ساعت ممنوع است و موجب حذف آنها خواهد شد.

لطفا به جای بروز کردن تاپیک های قدیمی در نظر شروع یک تاپیک جدید باشید مگر این که لازم به بروزرسانی تاپیک مربوطه باشد.

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...

اطلاعات مهم

لطفا قبل از عضویت و همکاری با ما قوانین را مطالعه کنید.