1 / 11
Aug 2016

Witam, u mnie wszystko śmiga dla przykładów z zadania i nie tylko, a sędziemu wyskakuje błędna odpowiedz.
Szukałem po tematach z tego zadania ale nie widziałem podobnych rozwiązań albo nie umiałem się połapać.
Czy ta metoda:
int y=dzieciB[i] * dzieciA[i];
wynik[i]=y/dzielnik;
ma jakieś słabe strony albo jest nieprawidłowa?
http://ideone.com/T5BXvR76
Dziękuję za pomoc!

  • created

    Aug '16
  • last reply

    Sep '17
  • 10

    replies

  • 1.1k

    views

  • 5

    users

  • 1

    link

To nie sędziemu wyskakuje błędna odpowiedź, tylko ty masz błędy w programie

zrób test dla danych:

1
7 7

Wyskakuje błędnie w odpowiedzi 49, śledzę kod i nie umiem wyłapać błędu.
Podstawiam po kolei:

    7                           7

if(dzieciA[i]%7==0&&dzieciB[i]%7==0) dzielnik=7;
}
int y=7*7;
wynik[i]=49/7; <----- dlaczego w tym miejscu się nie dzieli? Zle zapisałem?
Proszę o podpowiedz.

oczywiście, że dzieli - komputer bezmyślnie wykonuje polecenia, może więc mnoży lub dzieli przez coś innego, niż myślisz

czasami zanim się coś napisze, warto też coś przeczytać - w tym przypadku o NWD

Dziękuję!
Poczytam i napisze od nowa z użyciem NWD.
Mam jeszcze jedno pytanie, czy wiesz jak komputer odróżnia mnożenie zmiennych od wskaznika?
Pozdrawiam!

semantyka :slight_smile:

jeżeli x jest nazwą zmiennej i jednocześnie

jeżeli *x jest poprzedzone wyrażeniem to jest to mnożenie

jeżeli *x nie jest poprzedzone wyrażeniem to jest to wskażnik

np:
a * b - wyrażenie
(*b) - wartość pobrana ze wskaźnika
a * * b - pierwsza * to mnożenie, druga to wskaźnik

1 year later

Hej, mam problem z tym zadaniem , otóż wyrzuca mi przekroczenie czasu, jest ktoś w stanie nakierować mnie na błędy w kodzie ?

#include <iostream>

using namespace std;
int group_one = 0;
int group_two = 0;
int how_many = 0;
int main()
{
	cin >> how_many;



	for (int i = 0; i < how_many; i++)
	{
		cin >> group_one >> group_two;
		int ratio1 = group_one*group_two;
		do
			if (group_one > group_two)
			{
				group_one = group_one - group_two;
			}
			else
			{
				group_two = group_two - group_one;
			}
		while (group_one != group_two);
		cout << ratio1 / group_one << endl;
	}

	return 0;
}

nieskończone pętle z zasady dają przekroczenie czasu - więc może ich nie używaj :slight_smile:

Czy Ty testujesz swoje programy tylko na testach z zadania? Tu na forum, trochę wyżej, jest test @mariusz193 :

1
7 7

PS
nwd(7, 7) = 7
nwd(7, 0) = 7
nwd(0, 7) = 7

PS 2
Naucz się poprawnie wklejać swoje kody na forum, @j4rooo nie będzie poprawiał za każdym razem.

A, mam nadzieję, że chociaż merytorycznie pytanie ok :wink: Nie zawsze mam czas czytać ale poprawienie zajmuje jakieś 7 sek.