Ziomaleq [ impossible is nothing ]
proste zadanie, c++
Równanie liniowe
Limit pamięci: 32 MB
Mamy dane równanie liniowe względem zmiennej . Mając dane nieujemne liczby całkowite Twoim zadaniem będzie obliczenie liczby liczb całkowitych spełniających to równanie.
Zadanie
Napisz program, który:
* wczyta ze standardowego wejścia nieujemne liczby całkowite ,
* wypisze liczbę całkowitą bedącą liczbą rozwiązań całkowitoliczbowych równania, albo "NIESKONCZONOSC" jeśli takich rozwiązań jest nieskończenie wiele.
Wejście
W pierwszym i jedynym wierszu wejścia znajdują się 2 nieujemne liczby całkowite ().
Wyjście
W jedynym wierszu wyjścia należy wypisać jedna liczbę całkowitą, będącą liczbą całkowitoliczbowych rozwiązań równania, albo "NIESKONCZONOSC", jeśli liczba takich rozwiązań jest nieskończona
Przykład
Dla danych wejściowych:
0 0
poprawną odpowiedzią jest:
NIESKONCZONOSC
a dla danych wejściowych:
2 4
poprawnym wynikiem jest:
1
**** pomoze ktos?
pablo397 [ sport addicted ]
no ale w czym masz problem? bo przedstawiles tylko opis zadania
Ziomaleq [ impossible is nothing ]
niewiem, jak ma zliczac ilosc liczb spelniajacych rownanie.
Dym14 [ C L I N I C ]
Nie rozumiem w czym problem.
O ile dobrze zrozumiałem:
wczytujesz liczbę
sprawdzasz czy nie jest ujemna
masz wzór ax + b = 0
jeżeli a <>0 to wynik jest 1 (jedno rozwiązanie)
w przeciwnym wypadku jeżeli b=0 to nieskończenie wiele rozwiązań
w przeciwnym wypadku wynik jest 0 (brak rozwiązań)
eee i to wszystko?
Ziomaleq [ impossible is nothing ]
ach... zle skopiowałem. zobacz teraz:
mac2000 [ Konsul ]
int licznik=0;
for(int x=0;x<=1000;x++)
if(x==(b/a))
licznik++;
cout<<licznik;
Dorobisz jeszcze warunek dla 0 i już.(a>0)
Kogee [ Kogi ]
Mało to efektywne. (i na oko nie będzie działało przy b/a będącym ułamkiem)
Rozpatrz 4 przypadki
1) Dla jakich a i b będzie będzie nieskończoność rozwiązań
2) Dla jakiej zależności b i a będzie to jedno rozwiązanie
3) Dla jakiego a punkt wyżej wywali program
4) Cała reszta wypisze 0
lolka123 [ Junior ]
czyli jaki jest ten kod najefektywniejszy... jak mozecie podajcie od początku...<prosi>
reik [ Pretorianin ]
zadanie jest z typu tych, w których trzeba więcej pomyśleć niż pokodować.
1. Najpierw trzeba rozwiązać równanie:
a * x = b, czyli inaczej x = b/a
2. Potem trzeba się zastanowić dla jakich "a" i "b" powyższe równanie ma:
* 1 rozwiązanie (dla a != 0 && b != 0)
* 0 rozwiązań (dla a == 0 && b != 0)
* nieskończenie wiele rozwiązań (dla a == 0 && b == 0).
3. Trzeba warunek z punktu 2 napisać w C/C++. W pseudokodzie (zoptymalizowanym tak, żeby ładnie wyglądał na tym forum) by to wyglądało tak:
string function IleRozwiazan(int a, int b)
if (a == 0 && b == 0) return "NIESKOŃCZONOŚĆ";
if (b ==0) return "0 rozwiązań";
return "1 rozwiązanie"
lolka123 [ Junior ]
zadanie jest z typu tych, w których trzeba więcej pomyśleć niż pokodować>>
ale nie da rady, to się ni sprawdza... jak mozesz to wrzuc tu ten kod :) z góry dziękuję;*