Gyakorlati alapok

Hány számjegy avagy mennyi digit? - II.

 

Ebben a fejezetben egy tipikus tesztkérdést válaszolunk meg, amellyel egyébként valóban egy programozó akadémia tesztkérdései között találkoztam. A kérdés angol nyelven a következő volt: csakis papír és toll segítségével állapítsuk, hogy hány olyan kétjegyű szám van, ahol az egyik számjegy több, mint a másik?

 

Amint az a szöveges feladatoknál lenni szokott, a kérdés megértése már félsikernek számít. A magam részéről a rendelkezésre álló idő alatt nem találtam mélyebb matematikai képletet, ha esetleg valakinek erre volna valamilyen ötlete, kérem, hogy írja meg nekem.

 

A problémát akkor manuálisan oldottam meg:

A Java-implementáció is nagyjából ezt az algoritmust követi:

Nézzük meg a futtatható Java-kódot:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

class Main {
public static void main (String args[]){
    String szamString = "";
    int szamlalo1 = 0;
    int szamlalo2 = 0;
    int digit1, digit2 = 0;
    for(int i = 10; i <= 99; i++){
        szamString = Integer.toString(i);
        digit1 = Integer.parseInt(szamString.substring(0, 1));
        digit2 = Integer.parseInt(szamString.substring(1));
        if(digit1 == digit2){
            continue;
        }
        else if(digit1 > digit2){
            szamlalo1++;
        }
        else
            szamlalo2++;
        }
    System.out.println("Az 1. digit mennyisége: " + szamlalo1);
    System.out.println("A 2. digit mennyisége: " + szamlalo2);
    }
}

 

Végeredmény:

Az 1. digit mennyisége: 45
A 2. digit mennyisége: 36