Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 17th, 2012  |  syntax: C++  |  size: 0.66 KB  |  hits: 47  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <gmp.h>
  4. #include <math.h>
  5.  
  6. char buf[1000000000];
  7.  
  8. bool isPan(unsigned int a) {
  9.     int mask = 0;
  10.     for (int i=0;i<9;i++) {
  11.         mask |= 1 << (a % 10);
  12.         a /= 10;
  13.     }
  14.     return mask == 0x3FE;
  15. }
  16.  
  17. int main() {
  18.     unsigned int ra=1,rb=1,rc,k=1;
  19.     mpz_t p;
  20.     mpz_init(p);
  21.     while (1) {
  22.         if (isPan(ra)) {
  23.             printf("RIGHT %d %u\n", k, ra);
  24.             mpz_fib_ui(p, k);
  25.             mpz_get_str(buf, 10, p);
  26.             int mask = 0;
  27.             for (int i=0;i<9;i++) mask |= 1 << (buf[i]-'0');
  28.             if (mask==0x3FE) {printf("LEFT %d\n", k); break;}
  29.         }
  30.         // next
  31.         k++;
  32.         rc=(ra+rb)%1000000000; ra=rb; rb=rc;
  33.     }
  34. }