Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Poradňácká hádanka

Pekné riešenie. :-)

Doplním podmienku, že cifry sa nemôžu opakovať:

#include <stdio.h>

int main() {
  for (int i = 100000; i < 1000000; ++i) {
    int x = 8 * i;
    if (i/100%10 == x%10 && i/100%10 == x/1000%10 && i/100000%10 == x/100%10 && i/10000%10 == x/100000%10) {
      int bitmask = 1<<i/100000%10|1<<i/10000%10|1<<i/1000%10|1<<i/100%10|1<<i/10%10|1<<i/1%10|1<<x/1000000%10|1<<x/10000%10|1<<x/10%10;
      int missing = 0;
      for (int j = 0; j < 10; ++j)
        if ((bitmask&(1<<j)) == 0 && ++missing > 1)
            break;
      if (missing == 1)
        printf("DOTAZY=%06d, PORADNA=%07d\n", i, x);
    }
  }
  return 0;
}

Edit: Vypíše to:
DOTAZY=509816, PORADNA=4078528
DOTAZY=509821, PORADNA=4078568

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny