michael_hartman_cz

PA1 - úkol 2.1 (palindromy)

Mar 28th, 2013
432
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.87 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <limits.h>
  3.  
  4. unsigned long long int reverse ( unsigned long long int num );
  5.  
  6. int main ( int argc, char * argv[] )
  7.  {
  8.     unsigned long long int n;
  9.     int i = 0;
  10.    
  11.     puts ( "Zadejte cislo:" );
  12.     if ( scanf ( "%llu", &n ) != 1 || n < 0 )
  13.      {
  14.         puts ( "Nespravny vstup." );
  15.         return 1;
  16.      }
  17.    
  18.     while ( n != reverse ( n ) )
  19.      {  
  20.         if ( ULLONG_MAX / 10 > n )
  21.          {
  22.             n += reverse ( n );
  23.          }
  24.         else
  25.          {
  26.             puts ( "Palindrom nenalezen." );
  27.             return 0;          
  28.          }
  29.         i++;
  30.      }
  31.     printf ( "Vypocteny palindrom: %llu (iteraci: %d)\n", n, i );
  32.  
  33.     return 0;
  34.  }
  35.  
  36. unsigned long long int reverse ( unsigned long long int num )
  37.  {
  38.     unsigned long long int r,reverse=0;
  39.    
  40.     while ( num )
  41.      {
  42.          r=num%10;
  43.          reverse *=10;
  44.          reverse +=r;
  45.          num=num/10;
  46.      }
  47.     return reverse;
  48.  }
Advertisement
Add Comment
Please, Sign In to add comment