SIlnia wielokrotna rekurencyjnie w c++

0

Kompletnie nie ogarniam programu z wielokrotną silnią, wiem tylko tyle że nalezy zrobić ten program w postaci rekurencyjnej, zadeklarowałem potrzebne zmienne itd i nie wiem co dalej. Pomoże ktoś?

W pierwszej linii wejścia znajduje się jedna liczba całkowita t<=10 oznaczająca liczbę testów.
W kolejnych liniach znajdują się poszczególne testy. Każdy z nich składa
się z dwóch liczb całkowitych, n oraz k (1<=n,k<=12).

 #include <iostream>
using namespace std;
//////////////////////////////////////////////////////////
int silnia (int n, int k)
{
    
}
////////////////////////////////////////////////////////

int main() {
int t, n, k; // t- ilość testów dla n-silnii k-tej  
cin>>t;
for (int i=0;i<t;i++)
cin>>n>>k;
    
    return 0;
} 
1

Nie ogarniasz nie tylko programu, nie ogarniasz też czytania ze zrozumieniem.

  1. Nie istnieje czegoś takiego jak wielokrotna silnia.
  2. Potrzebujesz dwumian Newtona lub trójkąt Paskala http://pl.wikipedia.org/wiki/Dwumian_Newtona
    </del>

http://pl.wikipedia.org/wiki/Silnia#Silnia_wielokrotna

unsigned silnia(unsigned n,unsigned k)
  {
   return n<k?1:n*silnia(n-k,k);
  }
1
_13th_Dragon napisał(a):

Nie ogarniasz nie tylko programu, nie ogarniasz też czytania ze zrozumieniem.

  1. Nie istnieje czegoś takiego jak wielokrotna silnia.
  2. Potrzebujesz dwumian Newtona lub trójkąt Paskala http://pl.wikipedia.org/wiki/Dwumian_Newtona

Ależ istnieje i nie potrzeba żadnych dwumianów Newtona.

Rekurencyjna definicja jest na Wikipedii (nawet polskiej), wystarczy zastosować: http://pl.wikipedia.org/wiki/Silnia#Silnia_wielokrotna

1 użytkowników online, w tym zalogowanych: 0, gości: 1