سلام من برنامه برج های هانوی را در c++ میخواهم که وقتی خروجی میگری به صورت گرافیکی هم نشان دهد. در ضمن اگر کسی از دوستان بلده من تا 10 خرداد بیشتر وقت ندارم.از کمک همه شما متشکرم. ;)
Printable View
سلام من برنامه برج های هانوی را در c++ میخواهم که وقتی خروجی میگری به صورت گرافیکی هم نشان دهد. در ضمن اگر کسی از دوستان بلده من تا 10 خرداد بیشتر وقت ندارم.از کمک همه شما متشکرم. ;)
سلام عسل جان اينم جوابت فكر نكنم مشكلي داشته باشه.
قربانتکد:#include <iostream>
#include <cstdlib>
#include <conio.h>
#include <cmath>
typedef char* Peg;
void move(Peg A, Peg B);
void transfer(size_t N, Peg A, Peg B, Peg C);
void get_disk_num(int &iNum);
int main()
{
while(1)
{
std::cout << "\t\t\tHanoi Towers Puzzle Solver" << std::endl << std::endl;
std::cout << "Enter number of disc on the first peg (enter -1 to quit): ";
int iDiskNum, iStepNum;
get_disk_num(iDiskNum);
if(iDiskNum == -1)
{
std::cout << "hope you enjoyed using these program!" << std::endl;
break;
}
else
{
iStepNum = pow(2, iDiskNum) - 1;
std::cout << "the shortest solution can be reach in " << iStepNum << " steps" << std::endl;
std::cout << "press any key to show the solution...";
getch();
std::cout << std::endl;
transfer(iDiskNum, "Peg1", "Peg2", "Peg3");
system("pause");
system("cls");
}
}
return 0;
}
// tedade jabejayi diskha
void move(Peg A, Peg B)
{
std::cout << "move top most disc from " << A << " to " << B << std::endl;
}
// chegonegiye harekate diskhara namayesh midahad
void transfer(size_t N, Peg A, Peg B, Peg C)
{
if(N > 0)
{
// enteghale avalin N - 1 disk be "B"
transfer(N - 1, A, C, B);
// enteghale akharin disk be "C"
move(A, C);
// enteghale dickhaye "B" be"C",
transfer(N - 1, B, A, C);
}
}
void get_disk_num(int &iNum)
{
std::cin >> iNum;
if(iNum != -1 && iNum < 1)
{
std::cout << "please notice that the number of disc needs to be an integer bigger than 0" << std::endl;
std::cout << "number of disc on the first peg: ";
get_disk_num(iNum);
}
}
سلام . اين برنامه كه نوشتيد به روش بازگشتيه يا غير بازگشتي ؟
برنامه بازگشتی برنامه ایه که خودش رو صدا بزنه
به طور مثال تو قسمت getdisc تابع خودش رو صدا زده
پس برنامه بازگشتیه
سلام دوستان
من الگوریتم برج های هانوی رو با یکی از روش های جستجو میخوام واگر الگوریتم رو به زبان c# بفرستید ممنون میشم
:11:
منم همچين سوالي مثل عسل برام پيش اومده ميخوام جوابي كه داده شده ببينمنميدونم چكار كنم؟
من برنامه ي برجهاي هانو رو دارم وپايين اونو نوشتم:
مشكلم اينه كه قسمت اول اونو نميفهمم:
قسمتهاي *دارو نميفهمم .يعني چي؟
#include <iostream.h>
#include <conio.h>
void hanoi(int n,int a,int b,int c,int d)
{
if (n==1); *
cout<< a<<"->"<<d<<endl; *
{if (n>1); *
{
hanoi (n-1,a,c,d,b); *
hanoi (n-1,b,a,d,c); *
cout<< a<<"->"<<d<< endl; *
hanoi(n-1,c,a,b,d); *
}
}
}
void main()
{ int n;
cin>>n;
hanoi (n,1,2,3,4);
getch();
}
:42: بچه ها الگوريتم و توضيحات كامل برجهاي هانو رو هرچه سريعتر برام بفرستيد.يهجوري كه بفهمم ساده ومفيد.
من خيلي نيازمندم.
باتشكر.
:41:برنامه برج هاي هانو با4 حلقه وبا توضيحات كاملالگوريتم
راستي بچه ها يه سوال چرا وقتي تابع فاكتوريل و با اعداد بزرگ انجام ميديم error ميده؟