Example : UVa 847 - A Multiplication Game ( Recurrence )
analysis  :            
            if
   n->[ 1,9 ] , x9 ,StanWin
            if   n->[ 10,18 ] , x2 x9 , StanLose
            if   n->[ 19,162 ] , x9 x2 x9 , StanWin
                                    if   n->[ 19,36 ] , x2 x2 x9 ( 2 x 9 < 19 )
                                    if   n->[ 37,54 ] , x3 x2 x9 ( 3 x 9 < 37 )
                                    if   n->[ 55,72 ] , x4 x2 x9 ( 4 x 9 < 55 )
                                    if   n->[ 73,90 ] , x5 x2 x9 ( 5 x 9 < 73 )
                                                    . . .
                                    if   n->[ 144,162 ] , x9 x2 x9 ( 9 x 9 < 144 )
            if   n->[ 163,324 ] , x2 x9 x2 x9, StanLose
                  if   n->[ 163,252 ]
                                       whatever first p->[ 2,9 ] , Ollie can make second p ->[ 14,18 ] , So Stan can't win in third step ( 18 x 9 < 163 ) , p->[ 28,36 ] ,                                                                             x7 x2 x2 x9 ( 7 x 2 x 9 < 163 ) 
                  if   n->[ 253,324 ]
                                       whatever first p->[ 2,9 ] , Ollie can make second p ->[ 18,28 ] , So Stan can't win in third step ( 28 x 9 < 253 ) , p->[ 36,56 ] ,                                                                           x2 x9 x2 x9 ( 2 x 9 x 9 < 253 )
                        . . .
 1 #include<stdio.h>
 2 int main(void){
 3     int n,p,StanWin;
 4     while(scanf("%d",&n)!=EOF){
 5         StanWin=0;
 6         p=1;
 7         while(1){
 8             p*=9;
 9             if(p>=n){
10                 StanWin=1;
11                 break;
12             }
13             p*=2;
14             if(p>=n)
15                 break;
16         }
17         if(StanWin)
18             printf("Stan wins.\n");
19         else
20             printf("Ollie wins.\n");
21     }
22     return 0;
23 }