Witam, chce wykonać zadanie z kombinacją bez powtórzeń ale kompletnie nie umiem ułożyć kod w oparciu o to. Znam wzór, zrobiłem już jedno zadanie z permutacją lecz nie wiem jak sformułować kod aby działał poprawnie. Chciałbym też zwrócić uwagę na to, że napisanie kodu powinienem oprzeć na pętli for.
Zadanie:
Robot kucharski Don_Giovanni_Elemental16 specjalizuje się w wytwarzaniu oryginalnej włoskiej pizzy. Proces zawsze rozpoczyna się od ułożenia ciasta, posmarowania go sosem pomidorowym oraz posypania mozzarellą. Następnie Don_Giovanni_Elemental16 układa dodatki wg zamówienia. Klient poprosił o pewną liczbę dodatków (większą od 0), obojętnie jakich.
Uzupełnij funkcję int pizza ( int n, int k ), aby zwracała liczbę wszystkich możliwych kombinacji pizzy (w tym również tych wyjątkowo ohydnych) zakładając, że n to liczba dostępnych dodatków, a k to liczba zamówionych dodatków oraz, że każdy dodatek można w pizzy użyć najwyżej raz.
Mam również wskazówkę do tego zadania, próbowałem coś z tym zrobić ale nie rozumiem tego:
We wzorze na liczbę kombinacji trzy razy występuje wyrażenie z silnią. Dla ułatwienia i dla lepszej czytelności kodu, przypisz wyniki tych wyrażeń trzem różnym zmiennym - np. n_silnia, k_silnia, n_minus_k_silnia. Mając wartości tych trzech zmiennych łatwo obliczysz liczbę kombinacji - z silnią poradziłeś już sobie w poprzednim ćwiczeniu. Uważaj, aby Twoje pętle wykonały się odpowiednią ilość razy. Pamiętaj, że inkrementacja licznika w nagłówku pętli następuje PO wykonaniu pętli, a nie przed (w przeciwieństwie do sprawdzenia warunku).
Z góry dziękuje za podpowiedź, podsyłam również początek kodu.
int pizza( int n, int k )
{
return 0;
}