Diskuze: Najväčší možný delitel pomcou rekurzie
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 2 zpráv z 2.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Nejvyšší možný dělitel čísla n z množiny přirozených čísel N je vždycky n , ale pokud bych měl sestavit algoritmus pro výpočet druhého nejvyššího dělitele čísla n, tak bych to upravil asi takto:
U sudých čísel (2n) je to vždycky n/2, a u lichých (2n-1) můžeš ten algoritmus spustit od hodnoty n/2 . U velkých čísel tak ušetříš několik zbytečných kroků. Samozřejmě tenhle algoritmus se dá použít pro čísla n>1 (nulou dělit nelze).
#include <iostream>
int ND(int num, int n) {
if (num % n == 0)
return n;
return ND(num, n-1);
}
int main() {
int num = 4569;
if (num > 1) {
if (num % 2 == 0)
std::cout << num/2 << std::endl;
else std::cout << ND(num, num/2) << std::endl;
}
return 0;
}
Snad se nepletu .
Zobrazeno 2 zpráv z 2.