Zdefiniuj algorytm, który dla dowolnej liczby naturalnej n wyznaczy sumę wszystkich liczb podzielnych przez 5 mniejszych od podanej liczby n. Rozwiązanie zadania ma zawierać:
* specyfikację problemu;
* listę kroków;
* schemat blokowy
* kod zapisany w języku C++.
język c++
-
- Użytkownik
- Posty: 6607
- Rejestracja: 16 sty 2007, o 19:42
- Płeć: Mężczyzna
- Podziękował: 119 razy
- Pomógł: 1823 razy
język c++
Kod krotki i zapewne nie wymagajacy wyjasnien:
Dobuduj sobie do tego reszte polecen Pozdrawiam.
Kod: Zaznacz cały
#include <iostream>
using namespace std;
typedef unsigned int uint;
typedef const unsigned int cuint;
int main()
{
uint Liczba=0;
uint Suma=0;
cuint Dzielnik=5;
cout<<"Podaj liczbe: ";
cin>>Liczba;
for(uint i=0;i<Liczba;i+=Dzielnik)
Suma+=i;
cout<<"Suma wynosi: "<<Suma;
return 0;
}
- Anathemed
- Użytkownik
- Posty: 101
- Rejestracja: 12 lip 2007, o 21:09
- Płeć: Mężczyzna
- Lokalizacja: Kraków
- Pomógł: 34 razy
język c++
To nie będzie czas stały, tylko \(\displaystyle{ O(lgnlglgn)}\) (mnożenie dwóch liczb zajmuje trochę czasu )Dumel pisze:lepiej to zrobić w stałym czasie ze wzoru na sumę ciągu arytmetycznego
Trochę się czepiam, ale warto mieć świadomość tego typu drobnych różnic
- kadiii
- Użytkownik
- Posty: 642
- Rejestracja: 20 gru 2005, o 21:04
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Pomógł: 130 razy
język c++
Ze wzoru to jest w czasie stałym - \(\displaystyle{ O(1)}\). Warto sobie zdać sprawę, że jak sama nazwa wskazuje, czas stały to stała liczba operacji bez względu na ilość danych wejściowych. Czyli wzór to oczywiście \(\displaystyle{ O(1)}\)- czas stały.