15 października 2014 (środa), 16:25:25

Programować każdy może (4)

Ania zadała mi dziś zagadkę. Trzy cyfry tworzą liczbę trzycyfrową, którą jak się pomnoży przez 9 to jest liczba czterocyfrowa, złożona z tych samych trzech cyfr, tylko w środku wstawione jest zero. Znaleźć te 3 cyfry.

Oczywiście dla niej to nie problem. Od razu znalazła. A ja wymiękłem. Ale poszedłem do kompa i rozwiązałem ten problem za pomocą młotka. Oto rozwiązanie:

#include <stdio.h>

main() {
  int a, b, c;
  for (a=0; a<9; a++)
    for (b=0; b<9; b++)
        for (c=0; c<9; c++) {
            if ((a*100+b*10+c)*9 == a*1000+0+b*10+c)
                printf ("\nW1 ABC*9=A0BC %i%i%i*9 = %04i", a, b, c, (a*100+b*10+c)*9);
            if ((a*100+b*10+c)*9 == a*1000+b*100+0+c)
                printf ("\nW2 ABC*9=AB0C %i%i%i*9 = %04i", a, b, c, (a*100+b*10+c)*9);  
        }  
}

No i wynik:

W1 ABC*9=A0BC 000*9 = 0000
W2 ABC*9=AB0C 000*9 = 0000
W2 ABC*9=AB0C 045*9 = 0405
W1 ABC*9=A0BC 225*9 = 2025
W1 ABC*9=A0BC 450*9 = 4050
W1 ABC*9=A0BC 675*9 = 6075

Fajnie się używa tego narzędzia:
http://www.compileonline.com/compile_c_online.php

 

Ale wracając do zagadki. Potem podszedłem do tego analitycznie i zauważyłem, że ostatnia cyfra musi być.... No własnie.

0*9=0

1*9=9

2*9=18

3*9=27

4*9=36

5*9=45 !!!!

6*9=54

7*9=63

8*9=72

9*9=81

Tylko przy 5 się nie zmienia, a więc ostatnia cyfra to 5 albo zero.

A przedostatnia? Jeżeli tam będzie wstawione 0 to musi być to 3, bo .... ojej, głowa pęka, to już lepiej zapuścić ten program.


Kategorie: zawodowe, informatyka, _blog


Słowa kluczowe: programowanie, język c


Komentarze: (0)

Skomentuj notkę

Disclaimers :-) bo w stopce coś wyglądającego mądrze można napisać. Wszystkie powyższe notatki są moim © wymysłem i jako takie związane są ze mną. Ale są też materiały obce, które tu przechowuję lub cytuje ze względu na ich dobrą jakość, na inspiracje, bądź ilustracje prezentowanego lub omawianego tematu. Jeżeli coś narusza czyjeś prawa - proszę o sygnał abym mógł czym prędzej naprawić błąd i naruszeń zaniechać.