﻿/*
    Számok számjegyekre bontása

    Első módszer:
        ismételten osztjuk a számot tízzel, a maradékok megadják a számjegyeket 
        és a hányadossal megyünk tovább.

        Amint nullához érünk, elfogytak a számjegyek.

    Pl. Adott n természetes szám esetén írjuk ki annak számjegyeit külön sorokba.
*/
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;

    /*
    while (n > 0){
        int szj = n % 10;
        cout << szj << endl;

        n = n / 10;
    }
    */

    // Megoldás, ami n=0-ra is működik:

    do
    {
        int szj = n % 10;
        cout << szj << endl;
        n = n / 10;
    } while (n > 0);


    // VAGY:

    if (n == 0) {
        cout << 0 << endl;
    }
    else {
        while (n > 0){
            int szj = n % 10;
            cout << szj << endl;

            n = n / 10;
        }
    }


    return 0;
}

/*

Megjegyzések:
    - általában n%10 megadja az n utolsó számjegyét
    - n%100 megadja az utolsó két számjegyből alkotott számot
      ...  stb.

    - n/10 megadja azt a számot, amit az eredetiből úgy kapunk,
      hogy elhagyjuk az utolsó számjegyet
    - n/100 megadja azt a számot, amit az eredetiből úgy kapunk, hogy elhagyjuk 
      az utolsó KÉT számjegyet
      ... stb.

Feladatok:

    1. Határozzuk meg egy természetes szám számjegyeinek összegét!
       https://www.pbinfo.ro/probleme/10/suma-cifrelor

    2. (+pont) 
       Hány olyan számjegye van a számnak amelyik kisebb az elsőnél?
       https://www.pbinfo.ro/probleme/4314/cifre16

    HF: Egy természetes szám páratlan számjegyeinek szorzata.
        https://www.pbinfo.ro/probleme/65/produscifreimpare

*/
