/*
* =====================================================================================
*
* Filename: test.cpp
*
* Description:
*
* Version: 1.0
* Created: 2016å¹´03æ31æ¥ 15æ¶40å08ç§
* Last Modified: 2016å¹´03æ31æ¥ 15æ¶40å08ç§
* Revision: none
* Compiler: gcc
*
* Author: zt (),
* Organization:
*
* =====================================================================================
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
typedef std::complex cplx_t;
typedef std::vector vecomplex_t;
cplx_t cplx_tMiddle;
vecomplex_t vecomplex =
{
{ 1.1, 1.11},
{ 2.1, 2.22},
{ 3.1, 3.33},
{ 4.1, 4.44},
{ 3.5, 3.66},
{ 2.4, 2.55},
{ 1.3, 1.44},
{ 1.7, 1.33},
{ 4.7, 1.33},
{ 1.7, 5.33},
};
void GetMiddlePoint ( vecomplex_t& vecomplex, cplx_t& cplx )
{
double re = 0;
double im = 0;
for ( auto& ele : vecomplex )
{
re += ele.real();
im += ele.imag();
}
re /= vecomplex.size();
im /= vecomplex.size();
cplx = cplx_t ( re, im );
}
bool SortComp ( cplx_t& a, cplx_t& b )
{
double argA = std::arg ( a - cplx_tMiddle );
double argB = std::arg ( b - cplx_tMiddle );
if ( std::abs ( argA - argB ) < 0.001 )
return ( std::abs ( a - cplx_tMiddle ) > std::abs ( b - cplx_tMiddle ) );
return ( argA > argB );
}
void Hanoi ( int diskNo, char from, char des, char temp )
{
static int cnt = 0;
if ( diskNo > 0 )
{
Hanoi ( diskNo - 1, from, temp, des );
std::cout << "move disk " << diskNo << " form " << from << " to " << des << std::endl;
Hanoi ( diskNo - 1, temp, des, from );
}
}
int main ( int argc, char* argv[] )
{
#if 0
GetMiddlePoint ( vecomplex, cplx_tMiddle );
std::sort ( vecomplex.begin(), vecomplex.end(), SortComp );
//std::cout << cplx_tMiddle.real() << " " << cplx_tMiddle.imag() << std::endl;
for ( auto& ele : vecomplex )
std::cout << ele.real() << " " << ele.imag() << " " << std::abs ( ele ) << " " << std::arg ( ele ) << std::endl;
#endif
Hanoi ( 3, 'A', 'B', 'C' );
return 0;
}