Ocena użytkownikóww: ***** / 38
Nadesłany przez Bartosz Bednarczyk, 11 lipca 2011 14:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
Symbol Newtona - Iteracyjnie.cpp:
#include <iostream>
/*
* Bartosz "WiedźMAC" Bednarczyk
* Liceum Ogólnokształcące im. Władysława Broniewskiego w Strzelcach Opolskich
* Iteracyjne obliczanie wartości Symbolu Newtona ( C++ )
* www.algorytm.org
*/
unsigned long long Newton( unsigned int n, unsigned int k) // Funkcja obliczająca symbol newtona
{
double Wynik = 1; // Deklaracja zmiennej ( używamy double dla dokładności obliczeń )
for( unsigned int i = 1; i <= k; i++) // Od 1 do k wykonujemy :
{
Wynik = Wynik * ( n - i + 1 ) / i; // Obliczanie ze wzoru iteracyjnego
}
return (unsigned long long) Wynik; // Zwróć Wynik
}
int main(void)
{
unsigned int n, k;
std::ios_base::sync_with_stdio(false); // Przyśpieszanie I/O
std::cin >> n >> k; // Wczytywanie liczb
if( k == 0 || k == n ) std::cout << "1"; // Jeżeli k = 0 lub k = n to wypisz 1
else std::cout << Newton(n, k); // W przeciwnym wypadku oblicz wartość symbolu newtona
return 0;
}