ZOJ 1331 - Perfect Cubes

 1  /*  Accepted 1331 C++ 00:00.23 836K  */
 2  #include  < iostream >
 3 
 4  using   namespace  std;
 5 
 6  int  cmp( const   void   *  a,  const   void   *  b)
 7  {
 8       return   * ( int * )a  -   * ( int * )b;
 9  }
10 
11  int  main()
12  {
13      cout  <<   " Cube = 6, Triple = (3,4,5) "   <<  endl;
14      cout  <<   " Cube = 12, Triple = (6,8,10) "   <<  endl;
15      cout  <<   " Cube = 18, Triple = (2,12,16) "   <<  endl;
16      cout  <<   " Cube = 18, Triple = (9,12,15) "   <<  endl;
17      cout  <<   " Cube = 19, Triple = (3,10,18) "   <<  endl;
18      cout  <<   " Cube = 20, Triple = (7,14,17) "   <<  endl;
19      
20       int  x[ 202 ];
21       for ( int  i  =   2 ; i  <=   200 ; i ++ )
22          x[i]  =  i  *  i  *  i;
23      
24       for ( int  n  =   24 ; n  <=   200 ; n ++ )
25           for ( int  a  =   2 ; a  <  n; a ++ )
26           for ( int  b  =   2 ; b  <  n; b ++ )
27               if (a  <  b)
28              {
29                   int  c  =  x[n]  -  x[a]  -  x[b];
30                   if (c  <=   0 )
31                       continue ;
32                   int   * =  ( int * )bsearch( & c, x, n,  sizeof ( int ), cmp);
33                   if (p  &&  p  -  x  >  b)
34                      printf( " Cube = %d, Triple = (%d,%d,%d)\n " , n, a, b, p  -  x);
35              }
36      
37       return   0 ;
38  }
39 

你可能感兴趣的:(ZOJ 1331 - Perfect Cubes)