Czy to są funkcje rekurencyjne w C++ ? Proszę napisać dlaczego - najlepiej do dzisiaj do 21.00.
1) Silnia :
#include <cstdlib>
#include <iostream>
using namespace std;
int silnia(int s){
if (s==0) return 1;
else
return s*silnia(s-1); }
int main() {
int fsilnia, n;
cout << "Podaj n: "; cin >> n;
fsilnia=silnia(n);
cout << "Wynik silni z N: " << fsilnia << endl;
system("PAUSE"); return EXIT_SUCCESS; }
------------------------------------
2) Trójkąt Pascala
#include <iostream>
using namespace std;
int silnia(int n);
int main(){
int n,i;
unsigned long long int k,h=0;
cout<<"Podaj liczbe wierszy:";
cin>>n;
cin.ignore();
n++;//bo 1 element to 0
for(i=1;i<=n;i++&&h++){ //wypisuje wszystkie elementy piramidy
for(k=0;k<=h;k++){ //za pomoca dwumianu newtona oblicza współczynniki liczbowe
cout<<(silnia(h)/(silnia(k)*silnia(h-k)))<<" ";
}
cout<<"\n";
}
return 0;
}
int silnia(int n){
int sil=1;
if(n==0||n==1){
sil=1;
}else{
for(;n>=1;n--){
sil=sil*n;
}
}
return sil;
}
" Life is not a problem to be solved but a reality to be experienced! "
© Copyright 2013 - 2024 KUDO.TIPS - All rights reserved.
1) Tak, ponieważ funkcja silnia wywołuje samą siebie w trakcie działania.
2) Nie, gdzyż funkcja silnia nie wywołuje samej siebie w trakcie działania, zamiast tego zastosowano pętlę for.