6.4.. Napisati program koji učitava petocifreni broj i ispisuje cifre unazad.

Opis rješenja: Pri izdvajanju cifara koristi se osobina pozicionog sistema. Petocifren broj: broj = a*104 + b*103 + c*102 + d*101 + e*100. Izrazom broj % 10 dobijamo jedinice broja. Prvo se ispisuje cifra jedinica, desetica, stotica i tako redom. Cjelobrojnim dijeljenom sa 10000 dobija se prva cifra s desna (deset hiljadice). Cifra jedinica je ostatak dijeljenja broja sa 10. Cjelobrojnim dijeljenom sa 10 odbacuje se cifra jedinica - prva cifra sa desna, one se dijele sa 10 i ostatak dijeljenja je cifra desetica. Postupak se ponavlja odbacivanjem cifre sa desna i dijeljenjem sa 10. Vidi primjere >>.
Petocifren broj x koji se predstavlja x = abcde. Izdvajanje cifara se izvodi slijeva cjelobrojnim dijljenjem a zatim se dobija ostatak korišćenjem naredbe MOD (%) ostatak cjalobrojanog dijeljenja:
I varijanta - izdvajanja cifara s lijeva;
II varijanta - izdvajanja cifara s desna

Tekstualni algoritam:

  1. ulaz - učitati petocifren broj: x
  2. obrada - izračunati:
    abcde / 10000 = a // cifra deset hiljadica
    (abcde % 10000) / 1000 = bcde / 1000 = b // cifra hiljadica
    (abcde % 1000) / 100 = cde / 100 = c // cifra stotica
    (abcde % 100) / 10 = de / 10 = d // cifra desetica
    abcde % 10 = e // cifra jedinica
  3. izlaz - ispisati: x, a, b, c, d, e
II varijanta
  1. ulaz - učitati petocifren broj: x
  2. obrada - izračunati:
    x%10 = abcde % 10 = e // cifra jedinica, ostatak dijeljenja (%) sa 10
    x/10 = abcde / 10 = abcd = x // odbacuje se cifra s desna i ostaju prve 4 cifre - cetverocifren broj
    x%10 = abcd % 10 = d // cifra desetica, ostatak dijeljenja (%) sa 10
    x/10 = abcd / 10 = abc = x // odbacuje se cifra s desna i ostaju prve 3 cifre - trocifren broj
    x%10 = abc % 10 = c // cifra stotica, ostatak dijeljenja (%) sa 10
    x/10 = abc / 10 = ab = x // odbacuje se cifra s desna i ostaju prve 2 cifre - dvocifren broj
    x%10 = ab % 10 = b // cifra hiljadica, ostatak dijeljenja (%) sa 10
    x/10 = ab / 10 = a = x // odbacuje se cifra s desna i ostaju prve 2 cifre - dvocifren broj
  3. izlaz - ispisati: x, a, b, c, d, e

Listing programa:

// 06421157
#include <iostream>
using namespace std;
int main()
{
    int x, a, b, c, d, e;               // deklarisanje varijabli
    cout << "Ucitaj petocifren broj: "; // ime varijable cija vrijednost se ucitava  
    cin >> x;                           // ucitavanje vrijednosti varijable sa tastature 

    a = x / 10000;          // cifra deset hiljadica 
    b = (x % 10000)/1000;   // cifra hiljadica 
    c = (x % 1000)/100;     // cifra stotica
    d = (x % 100)/10;       // cifra desetica
    e = x % 10;             // cifra jedinica
    
    cout << "Cifra jedinica: " << e << endl;         // ispis vrijednosti
    cout << "Cifra desetica: " << d << endl;         // ispis vrijednosti
    cout << "Cifra stotica: " << c << endl;          // ispis vrijednosti
    cout << "Cifra hiljadica: " << b << endl;        // ispis vrijednosti
    cout << "Cifra deset hiljadica: " << a << endl;  // ispis vrijednosti
    return 0;
}

II varijanta
// 06421157
#include <iostream>
using namespace std;
int main()
{
    int x, a, b, c, d, e;               // deklarisanje varijabli
    cout << "Ucitaj petocifren broj: "; // ime varijable cija vrijednost se ucitava  
    cin >> x;                           // ucitavanje vrijednosti varijable sa tastature 
    
    e = x%10; 	 // petocifren broj deljenjem sa ostatkom (%) sa 10 dobijamo zeljeni ostatak na 5. mestu
    x = x/10;	 // petocifreni broj celobrojnim deljenjem (/) sa 10 zelimo da svedemo na cetvorocifren
    d = x%10;    // broj iz prethodnog koraka je cetvofocifren i deljenjem (%) sa 10 dobijamo ponovo ostatak sada na 4. mestu
    x = x/10;	 // cetvorocifren broj deljenjem (/) sa 10 svodimo na trocifren broj
    c = x%10;	 // iz prethodno svedenog trocifrenog broja deljenjem (%) sa 10 dobijamo ponovo ostatak na 3. mestu
    x = x/10;    // trocifreni broj iz prethodnog koraka deljenjem (/) sa 10 svodimo na dvocifren broj
    b = x%10;	 // postojeci dvocifren broj deljenjem (%) sa 10 dobijamo ostatak na 2. mestu
    a = x/10;	 // dvocifren broj delimo (/) sa 10 da ga svedemo na poslednju (jednu) cifru
    
    cout << "Cifra jedinica: " << e << endl;         // ispis vrijednosti
    cout << "Cifra desetica: " << d << endl;         // ispis vrijednosti
    cout << "Cifra stotica: " << c << endl;          // ispis vrijednosti
    cout << "Cifra hiljadica: " << b << endl;        // ispis vrijednosti
    cout << "Cifra deset hiljadica: " << a << endl;  // ispis vrijednosti
    return 0;
}

Ispis na ekranu:

Index