• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przedszkolanka

Object Storage Arubacloud
0 głosów
471 wizyt
pytanie zadane 5 września 2019 w C i C++ przez Pawel1452 Początkujący (380 p.)

Mam problem z powyższym zadanie, spoj go nie przyjmuję,

#include <iostream>


using namespace std;
int N,a,b,zm;


int main()
{
    cin>>N;
for(int i=0;i<N;i++)
{
    cin>>a>>b;

    if (b>a)
    {
        zm=a;
        a=b;
        b=zm;
    }

    while (a%b!=0)
    { int p=1;
    p++;
    a=a*p;


    }
cout<<a;

}
     return 0;
}

 

komentarz 5 września 2019 przez tkz Nałogowiec (42,000 p.)
A co gdy a równa się b?
komentarz 5 września 2019 przez Pawel1452 Początkujący (380 p.)
#include <iostream>


using namespace std;
int N,a,b,zm;


int main()
{
    cin>>N;
for(int i=0;i<N;i++)
{
    cin>>a>>b;

    if (b>a)
    {
        zm=a;
        a=b;
        b=zm;
    }

if(b==a) cout<<a;
else{
    while (a%b!=0)
    { int p=1;
    p++;
    a=a*p;


    }
cout<<a;}

}

     return 0;
}

Dodałem taki przypadek, jednak dalej nie działa :/

komentarz 5 września 2019 przez tkz Nałogowiec (42,000 p.)
Podziel na 3 warunki a>b, a<b, a==b.

While powinien inaczej wyglądać.

Przeczytaj jeszcze raz zadanie.
1
komentarz 5 września 2019 przez tangarr Mędrzec (154,860 p.)

dodatkowe uwagi:

1. zawsze daj link do zadania (nikt nie będzie się domyślał co twój kod ma robić)
2. nie używaj zmiennych globalnych jeżeli nie są (naprawdę) potrzebne
3. w bloczku kodu

while (a%b!=0) { 
    int p=1;
    p++;
    a=a*p; 
}

podczas mnożenia zmienna p zawsze jest równa 2

komentarz 5 września 2019 przez Pawel1452 Początkujący (380 p.)

Mimo tego, że wynuki wychodzą prawidłowe to nie zalicza. O co może chodzić?

#include <iostream>


using namespace std;



int main()
{
    int N,a,b,zm;

    cin>>N;

for(int i=0;i<N;i++)
{
    cin>>a>>b;

    if (b>a)
    {
        while (b%a!=0)
            {

                b=b*2;
            }

            cout<<b<<endl;
    }




    if(a>b)
    {
            while (a%b!=0)
                {

                    a=a*2;

                }
            cout<<a<<endl;
    }

    if(b==a) cout<<b<<endl;
}

     return 0;
}

 

komentarz 5 września 2019 przez tkz Nałogowiec (42,000 p.)

Twój kod wykonuje nieoprawne działania arytmetyczne https://en.wikipedia.org/wiki/Signal_(IPC)#SIGFPE

komentarz 6 września 2019 przez tangarr Mędrzec (154,860 p.)
Włącz debugger i prześledź wykonanie programu dla pary 4 i 3

2 odpowiedzi

0 głosów
odpowiedź 5 września 2019 przez adrian17 Ekspert (344,860 p.)

Nie patrzyłem na poprawność liczenia (zmienne globalne :( ) ale jedno rzuca się w oczy:

cout<<a;

Nie rozdzielasz niczym wyników :)

komentarz 5 września 2019 przez Pawel1452 Początkujący (380 p.)

Chodziło o dodanie endl?

#include <iostream>


using namespace std;



int main()
{
    int N,a,b,zm;
    cin>>N;

for(int i=0;i<N;i++)
{
    cin>>a>>b;

    if (b>a)
    {
        while (b%a!=0)
            {

                b=b*2;
            }

            cout<<b<<endl;
    }

    if(b=a) cout<<b<<endl;


    if(a>b)
    {
            while (a%b!=0)
                {

                    a=a*2;

                }
            cout<<a<<endl;
    }

}

     return 0;
}

 

komentarz 5 września 2019 przez adrian17 Ekspert (344,860 p.)
Nie patrzę na resztę algorytmu, ale ogólnie tak, chodziło mi o dodanie nowej linii na końcu :D
komentarz 5 września 2019 przez Pawel1452 Początkujący (380 p.)
Mimo tego, że wyniki wychodzą dobre to zadania mi nie zalicza. O co może chodzić?
0 głosów
odpowiedź 6 września 2019 przez DevLukiLL Obywatel (1,050 p.)
SPOJ nie przyjmuje zadania ponieważ, kod nie zwraca dla wszystkich możliwych przypadków poprawnych wartości.

Przykładowo przy zbiorze liczb 11 i 21 wychodzi wynik dość zwariowany i ujemny.

Polecam zastosować w tym zadaniu NWW ( Najmniejsza Wspólna Wielokrotność ), dość łatwe i klarowne rozwiązane.

Podobne pytania

0 głosów
1 odpowiedź 477 wizyt
pytanie zadane 9 kwietnia 2021 w SPOJ przez tenikoo Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 150 wizyt
pytanie zadane 24 listopada 2019 w C i C++ przez juske00 Początkujący (370 p.)
0 głosów
0 odpowiedzi 737 wizyt
pytanie zadane 7 listopada 2019 w Python przez creend Gaduła (4,700 p.)

92,567 zapytań

141,420 odpowiedzi

319,615 komentarzy

61,952 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...