Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Pagalbos su while ciklu.


Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 1885 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Žmogus susiekė per dc ir galiausiai priėjo sprendimą:

#include <iostream>

using namespace std;

int main() {
    int a, b, m, c, x, k;

    k = 7;
    a = 123;
    c = 0;
    m = 0;
    x = 0;
    while ( a>0 ) {
        if ( a / 10 == 0 ) {
            b = k;
        } else
            b = a % 10;
        m = pow( 10, c );
        x = x + b * m;
        c++;
        a = a / 10;
    }
    cout << x << endl;

    return 0;
}

Aišku, galima buvo užrašyti trumpiau (žiūrėkit žemiau), bet principas išlieka tas pats ir geriau nei tiesiog nurašyti sprendimą nieko nesupratus (beje, for ciklas čia būtų kiek patogesnis dėl i).

#include <iostream>

int main() {
    unsigned n = 123;
    unsigned k = 3;
    unsigned m = 0;
    unsigned i = 0;

    while ( n ) {
        m += ( ( n / 10 ) ? n % 10 : k ) * std::pow( 10, i++ );
        n /= 10;
    }

    std::cout << m << std::endl;

    return 0;
}

 

Redaguota , nario [m]
Nuoroda į komentarą
Dalintis per kitą puslapį

prieš 4 valandas(-ų), [m] parašė:

Žmogus susiekė per dc ir galiausiai priėjo sprendimą:


#include <iostream>

using namespace std;

int main() {
    int a, b, m, c, x, k;

    k = 7;
    a = 123;
    c = 0;
    m = 0;
    x = 0;
    while ( a>0 ) {
        if ( a / 10 == 0 ) {
            b = k;
        } else
            b = a % 10;
        m = pow( 10, c );
        x = x + b * m;
        c++;
        a = a / 10;
    }
    cout << x << endl;

    return 0;
}

Aišku, galima buvo užrašyti trumpiau (žiūrėkit žemiau), bet principas išlieka tas pats ir geriau nei tiesiog nurašyti sprendimą nieko nesupratus (beje, for ciklas čia būtų kiek patogesnis dėl i).


#include <iostream>

int main() {
    unsigned n = 123;
    unsigned k = 3;
    unsigned m = 0;
    unsigned i = 0;

    while ( n ) {
        m += ( ( n / 10 ) ? n % 10 : k ) * std::pow( 10, i++ );
        n /= 10;
    }

    std::cout << m << std::endl;

    return 0;
}

 

be ciklo galima butu isvis padaryt daug trumpiau

Nuoroda į komentarą
Dalintis per kitą puslapį

16 minutes prieš, Zero Two parašė:

be ciklo galima butu isvis padaryt daug trumpiau

Pasidalink, nes neįsivaizduoju, kaip tu tai padarytum, nežinodamas iš kelių skaitmenų susidaro skaičius, kadangi, mano manymu, vienintelis būdas ištraukti pirmąjį skaitmenį yra skaičius / 10^(skaitmenų kiekis - 1), tuolab dar reikia sujungti paskutinius skaitmenų kiekis - 1 skaičius.

Redaguota , nario [m]
Nuoroda į komentarą
Dalintis per kitą puslapį

prieš 8 valandas(-ų), [m] parašė:

Pasidalink, nes neįsivaizduoju, kaip tu tai padarytum, nežinodamas iš kelių skaitmenų susidaro skaičius, kadangi, mano manymu, vienintelis būdas ištraukti pirmąjį skaitmenį yra skaičius / 10^(skaitmenų kiekis - 1), tuolab dar reikia sujungti paskutinius skaitmenų kiekis - 1 skaičius.

reikia galvoti out of the box

Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 1885 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...