• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++ Algorytm rekurencyjny

0 głosów
1,032 wizyt
pytanie zadane 2 marca 2022 w C i C++ przez mlodybyk100 Nowicjusz (180 p.)

Siemka. Mam problem z tym zadaniem. Jej treść jest następująca:

Algorytm rekurencyjny można zastosować do obliczenia iloczynu liczby naturalnej
n przez wszystkie liczby naturalne dodatnie mniejsze od tej liczby. Taką wartość
nazywa się silnią liczby n oznacza jako n!. Napisz program obliczający
rekurencyjnie wartość n!.

 

I mam podany taki kod. Co muszę tutaj pozmieniać?

#include<iostream>

using namespace std;

void zamien(int n)

{

//jesli n == 0 to zawracamy

if(n==0)return;

zamien(n/2); //zagnieżdżamy rekurencję

cout<<n%2; //przy powrocie

}

int main()

{

int n;

cout<<"Podaj liczbę naturalną: ";

cin>>n;

cout<<"Postać binarna liczby "<<n<<": ";

if(n==0)

cout<<0;

else

zamien(n);

cout<<endl;

return 0;

 

komentarz 2 marca 2022 przez Dorian Bajorek Dyskutant (7,920 p.)
Ten kod z obliczeniem silni nie ma nic wspólnego. Trzeba zmienić wszystko
komentarz 2 marca 2022 przez mlodybyk100 Nowicjusz (180 p.)
Z tego co rozumiem w zadaniu należy przeprogramować kod aby działał jak silnia. Aktualnie oblicza sume kolejnych liczb "n" a ma obliczać iloczyn. Czy możesz doradzić jak to zrobić?
1
komentarz 2 marca 2022 przez Whistleroosh Maniak (57,400 p.)
Ten program akurat zamienia liczbe w systemie dziesiętnym na system binarny, a nie liczy sumę liczb

1 odpowiedź

0 głosów
odpowiedź 2 marca 2022 przez Dorian Bajorek Dyskutant (7,920 p.)

Tu jest przykład z tym czego oczekujesz

#include <iostream>
using namespace std;
int silnia(int n){
	if(n <= 1){
		return 1;
	}
	return n*silnia(n-1);
}
int main(){
	int n;
	cin>>n;
	cout<<silnia(n);
	return 0;
}

 

 

Podobne pytania

0 głosów
0 odpowiedzi 633 wizyt
0 głosów
1 odpowiedź 591 wizyt
pytanie zadane 11 lutego 2018 w C i C++ przez niezalogowany
0 głosów
2 odpowiedzi 1,240 wizyt
pytanie zadane 1 stycznia 2018 w C i C++ przez stasiu2901 Nowicjusz (120 p.)

93,743 zapytań

142,682 odpowiedzi

323,299 komentarzy

63,330 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...