Void Hanoy(int n, int sour, int dest)
{if (n>0)
{int middle=6-sour-dest;
Hanoy(n-1,sour,middle);
i++;
fout<<i<<". disk "<<n<<"
"<<sour<<"-->"<<dest<<endl;
Hanoy(n-1,middle,dest);
}
}
Int main ()
{
int n;
fout.open("rez.txt");
If (fout.Fail())
{cout<<"error open file rez.txt "<<endl;
return 1;}
cout<<"--> n ";
cin>>n;
fout<<"n="<<n<<endl;
i=0;
Hanoy(n,1,3);
fout.close();
return 0;
}
Rez.txt
n=5
1. disk 1 1-->3
2. disk 2 1-->2
3. disk 1 3-->2
4. disk 3 1-->3
5. disk 1 2-->1
6. disk 2 2-->3
7. disk 1 1-->3
8. disk 4 1-->2
9. disk 1 3-->2
10. disk 2 3-->1
11. disk 1 2-->1
12. disk 3 3-->2
13. disk 1 1-->3
14. disk 2 1-->2
15. disk 1 3-->2
16. disk 5 1-->3
17. disk 1 2-->1
18. disk 2 2-->3
19. disk 1 1-->3
20. disk 3 2-->1
21. disk 1 3-->2
22. disk 2 3-->1
23. disk 1 2-->1
24. disk 4 2-->3
25. disk 1 1-->3
26. disk 2 1-->2
27. disk 1 3-->2
28. disk 3 1-->3
29. disk 1 2-->1
30. disk 2 2-->3
31. disk 1 1-->
CОРТИРОВКА СЛИЯНИЕМ
. . . . . ..
iInt main()
{int A[1000],B[1000];
iInt n, I, k;
cin >> n;
for(i=0;i<n;i++ )cin>>A[i];
k=1;
while (k<n)
{i-0;
While (i+k<n)
{sl(A+i, A+i+k, k, min(k, n-k), B+i);
i+=2*k;
}
if (i>n) i=n;
for (j=0;j<I;j++)
A[j]=B[j];
k=k<<1;
}
for (i=0; i<n;i++)
cout<<A[i]<<” “;
return 0;
}