[Algorytmy][C++] Liczba dzielników, największa wartość
[Algorytmy][C++] Liczba dzielników, największa wartość
1) Napisz program obliczający ilość całkowitych dzielników liczby podanej przez użytkownika.
2) Napisz algorytm, który wypisuje największą z liczb podanych z klawiatury wraz z informacją, ile razy liczba ta wystąpiła w ciągu. Informacja o ilości liczb jest wartością podawaną na początku działania algorytmu. /z wypisaniem największej liczby sobie poradzę, prosiłabym bardziej o pomoc z uzyskaniem informacji, ile razy liczba ta wystąpiła w ciągu/.
3) Napisz program, który pobiera na wejściu ciąg liczb rzeczywistych aż do momentu, gdy wprowadzone zostanie 0 /z tą częścią raczej sobie poradzę/, i jako wynik wyświetla największą ilość podanych kolejno liczb dodatnich /tu mam już problem/.
Jeśli znalazłby się ktoś, kto chciałby pomóc choć w jednym zadaniu, z góry dziękuję:)
2) Napisz algorytm, który wypisuje największą z liczb podanych z klawiatury wraz z informacją, ile razy liczba ta wystąpiła w ciągu. Informacja o ilości liczb jest wartością podawaną na początku działania algorytmu. /z wypisaniem największej liczby sobie poradzę, prosiłabym bardziej o pomoc z uzyskaniem informacji, ile razy liczba ta wystąpiła w ciągu/.
3) Napisz program, który pobiera na wejściu ciąg liczb rzeczywistych aż do momentu, gdy wprowadzone zostanie 0 /z tą częścią raczej sobie poradzę/, i jako wynik wyświetla największą ilość podanych kolejno liczb dodatnich /tu mam już problem/.
Jeśli znalazłby się ktoś, kto chciałby pomóc choć w jednym zadaniu, z góry dziękuję:)
Ostatnio zmieniony 9 lut 2012, o 23:14 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
- ares41
- Użytkownik
- Posty: 6499
- Rejestracja: 19 sie 2010, o 08:07
- Płeć: Mężczyzna
- Lokalizacja: Kraków
- Podziękował: 142 razy
- Pomógł: 922 razy
[Algorytmy][C++] Liczba dzielników, największa wartość
2. W pętli for stwórz sobie zmienną która będzie zwiększała swoją wartość o jeden, gdy napotka interesującą nas liczbę.
- cyberciq
- Użytkownik
- Posty: 450
- Rejestracja: 19 kwie 2010, o 15:03
- Płeć: Mężczyzna
- Podziękował: 5 razy
- Pomógł: 43 razy
[Algorytmy][C++] Liczba dzielników, największa wartość
1. sprawdzasz w pętli czy dana liczba jest podzielna przez liczby całkowite zaczynając od 2 do pierwiastka kwadratowego z tej liczby, jeśli jest to zwiększasz zmienną która przechowuje liczbę dzielników o 1, jeśli nie pozostawiasz bez zmian.
2.Stwórz sobie tablice dynamiczną,wczytaj ile będzie zmiennych. Zadeklaruj sobie zmienną, która przechowuje wartość największą i dla każdej liczby porównuj ją na bieżąco z największa liczbą, jeżeli bieżaca wartośc bedzie większa to zaktualizuj wartość maksymalną. Potem zliczasz liczbę wystąpień najwiekszej liczby w tablicy.
3. Tutaj troszkę nie zrozumiałem. Masz wyświetlić tylko liczbę ile ich jest, czy cały ciąg tych liczb?
2.Stwórz sobie tablice dynamiczną,wczytaj ile będzie zmiennych. Zadeklaruj sobie zmienną, która przechowuje wartość największą i dla każdej liczby porównuj ją na bieżąco z największa liczbą, jeżeli bieżaca wartośc bedzie większa to zaktualizuj wartość maksymalną. Potem zliczasz liczbę wystąpień najwiekszej liczby w tablicy.
3. Tutaj troszkę nie zrozumiałem. Masz wyświetlić tylko liczbę ile ich jest, czy cały ciąg tych liczb?
[Algorytmy][C++] Liczba dzielników, największa wartość
nie mieliśmy jeszcze takich tablic:/ da się to jakoś ominąć?cyberciq pisze:2.Stwórz sobie tablice dynamiczną,wczytaj ile będzie zmiennych.
też nie bardzo rozumiem, przepisałam te zadania z podręcznika.cyberciq pisze:3. Tutaj troszkę nie zrozumiałem. Masz wyświetlić tylko liczbę ile ich jest, czy cały ciąg tych liczb?
- cyberciq
- Użytkownik
- Posty: 450
- Rejestracja: 19 kwie 2010, o 15:03
- Płeć: Mężczyzna
- Podziękował: 5 razy
- Pomógł: 43 razy
[Algorytmy][C++] Liczba dzielników, największa wartość
Da się bez tablicy tylko wtedy musisz mieć 2 zmienne. Jedną tak samo do przechowywania wartości max (nazwijmy ją x), a drugą do zliczania jej wystapień (np. y). Tylko potem tak: za pomocą instrukcji warunkowych sprawdzasz czy bieżąca wartość jest większa od x. Jeśli jest to przypisujemy y=1; jeśli nie to nic nie robimy, a jeśli jest równa x to y:=y+1.
[Algorytmy][C++] Liczba dzielników, największa wartość
Zaraz spróbuję rozpracować zad 2, a jesli chodzi o 3, to wydaje mi się, że jeśli podamy np ciąg:
4 5 6 0, to program wyświetli wartość 3 (ilość tych liczb).
4 5 6 0, to program wyświetli wartość 3 (ilość tych liczb).
- cyberciq
- Użytkownik
- Posty: 450
- Rejestracja: 19 kwie 2010, o 15:03
- Płeć: Mężczyzna
- Podziękował: 5 razy
- Pomógł: 43 razy
[Algorytmy][C++] Liczba dzielników, największa wartość
W 3 też wystarczą 2 zmienne-jedna do zapamiętania najdłuższego wystąpienia ciągu liczb dodatnich(np. x), druga do sprawdzenia aktualnej długości ciągu liczb(np. y).Sprawdzasz czy bieżąca liczba jest >0. Jeżeli jest to zmienną y zwiększasz o 1. Jeżeli nie, to jeśli y>x to x=y, y=0; No i na koniec x wyświetlasz.
[Algorytmy][C++] Liczba dzielników, największa wartość
Nie za bardzo rozumiem to 3, gdybyś mógł jeszcze raz..
- cyberciq
- Użytkownik
- Posty: 450
- Rejestracja: 19 kwie 2010, o 15:03
- Płeć: Mężczyzna
- Podziękował: 5 razy
- Pomógł: 43 razy
[Algorytmy][C++] Liczba dzielników, największa wartość
Przykładowa implementacja 3:
A w 1 to odnośnie tego co napisałem to jeszcze wynik pomnóż przez 2 i dodaj 2,
Kod: Zaznacz cały
#include<iostream>
using namespace std;
int main()
{double liczba;
int x=0,y=0;
do{
cin>>liczba;
if(liczba>0){y++;}
else
{
if(y>x){x=y;}
y=0;
}
}
while(liczba!=0);
cout<<x;
}
[Algorytmy][C++] Liczba dzielników, największa wartość
cyberciq, jesteś wielki
dzięki ogromne, uratowałeś mi skórę
dzięki ogromne, uratowałeś mi skórę
-
- Użytkownik
- Posty: 44
- Rejestracja: 23 gru 2011, o 22:59
- Płeć: Mężczyzna
- Lokalizacja: Polska
- Pomógł: 3 razy
[Algorytmy][C++] Liczba dzielników, największa wartość
liczba dzielników właściwych
Kod: Zaznacz cały
int nod(unsigned int a) { // słabo gdy a == 4294967291 == [2^32-1] - 4
unsigned int d, NOD=1;
for( d=2; d*d<=a; d ++ ) {
int w=1;
while( a%d == 0 ){
w++;
a /= d;}
NOD *= w; }
if( a>1 )
NOD *= 2;
return NOD - 1;}