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

Pagalbos dėl C++ Armstrongo skaičiaus radimo


Zagironas

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2327 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

26 minutes prieš, Draugielis parašė:

kelintoje klasėje mokaisi ir uždavinys iš pratybų ar vadovėlio?
Siūlau nueiti pažiūrėti į šį puslpaį gal rasi atsakymą; https://spargalka.lt/news.php

tu durnas ar tu durnas? 

 

on topic, kadangi prie telefono esu galiu tik pasakyti kaip turetu atrodyt sprendimas:

mano budas gal butu per daug complex, kadangi esu zmogus nemokantis gerai matematikos, taciau perskaityciau kaip stringa, ir paversciau i inta kitam kintamajam, tada loopini per visas raides sk.length(); kiekviena atskira skaiciu pasiverti i inta is stringo ir tada sukeli viska sk.length() laipsniu, ir susumuoji ir galu gale sutikrini

 

@Tautedorus sis zmogus gali viska paaiskinti naudojantis matematika

Redaguota , nario Dr. Arnas
  • Teigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

Galima apsieiti tik su dalyba ir liekanos radimu. Štai kodas, kuris atspausdina visus skaičiaus skaitmenis:

#include <iostream>

using namespace std;

int main(int argc, char* argv[])
{
    int number = 785145;
    do
    {
        int digit = number % 10;
        cout << digit << '\n';
        number /= 10;
    } while (number > 0);

    cin.get();

    return 0;
}
Redaguota , nario Tautedorus
  • Teigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

(redaguota)
On 12/18/2017 at 16:00, Tautedorus parašė:

Galima apsieiti tik su dalyba ir liekanos radimu. Štai kodas, kuris atspausdina visus skaičiaus skaitmenis:


#include <iostream>

using namespace std;

int main(int argc, char* argv[])
{
    int number = 785145;
    do
    {
        int digit = number % 10;
        cout << digit << '\n';
        number /= 10;
    } while (number > 0);

    cin.get();

    return 0;
}

O įmanoma padaryt šitą uždavinį su ciklu for? https://gyazo.com/e557cee62adabb5cc08a43955dd35cb5 Šitaip aš išsireiškiu triženklius ir keturženklius skaičius, tik paskui nežinau kaip padaryt kad tikrintų iš intervalo tarkim nuo 100 iki 9999

Redaguota , nario Tautedorus
Nuoroda į komentarą
Dalintis per kitą puslapį

Čia jau gaunasi kodo dubliavimas. Reikia sugalvoti tokį algoritmą, kad viskas būtų viename cikle, nepriklausomai nuo skaičiaus ilgio. Be to, jei matai, kad reikės daug kintamųjų ir juos pradedi net numeruoti, naudok masyvus.

#include <iostream>

using namespace std;

int main(int argc, char* argv[])
{
    unsigned long long int number = 17999999999999999999;
    int digits[20];

    cout << "The number is " << number << '\n';

    int number_of_digits;
    for (number_of_digits = 0; number > 0; number_of_digits++)
    {
        int digit = number % 10;
        digits[number_of_digits] = digit;
        number /= 10;
    }

    unsigned long long int armstrong_number = 0;
    for (int i = 0; i < number_of_digits; i++)
    {
        armstrong_number += pow(digits[i], number_of_digits);
    }

    cout << "Narcissistic number is " << armstrong_number << '\n';

    cin.get();

    return 0;
}
Redaguota , nario Tautedorus
  • Teigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

(redaguota)
On 12/18/2017 at 20:39, Tautedorus parašė:

Čia jau gaunasi kodo dubliavimas. Reikia sugalvoti tokį algoritmą, kad viskas būtų viename cikle, nepriklausomai nuo skaičiaus ilgio. Be to, jei matai, kad reikės daug kintamųjų ir juos pradedi net numeruoti, naudok masyvus.


#include <iostream>

using namespace std;

int main(int argc, char* argv[])
{
    unsigned long long int number = 17999999999999999999;
    int digits[20];

    cout << "The number is " << number << '\n';

    int number_of_digits;
    for (number_of_digits = 0; number > 0; number_of_digits++)
    {
        int digit = number % 10;
        digits[number_of_digits] = digit;
        number /= 10;
    }

    unsigned long long int armstrong_number = 0;
    for (int i = 0; i < number_of_digits; i++)
    {
        armstrong_number += pow(digits[i], number_of_digits);
    }

    cout << "Narcissistic number is " << armstrong_number << '\n';

    cin.get();

    return 0;
}

Ačiū, gali užrakint temą.

Redaguota , nario Tautedorus
Nuoroda į komentarą
Dalintis per kitą puslapį

  • d0Se užrakino šią temą

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2327 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!

Svečias
Ši tema yra užrakinta.

Skelbimai


×
×
  • Sukurti naują...