Ocena użytkownikóww: ***** / 1
Nadesłany przez Bartosz Bednarczyk, 12 lipca 2011 21: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 - Parzystosc - Lagrange.cpp:
#include <iostream>
/*
* Bartosz "WiedźMAC" Bednarczyk
* Liceum Ogólnokształcące im. Władysława Broniewskiego w Strzelcach Opolskich
* Sprawdzanie parzystości symbolu newtona - twierdzenie Lagrange'a ( C++ )
* www.algorytm.org
*/
long long Lagrange( long long n) // Twierdzenie Lagrange'a
{
long long W = 2, Wyk =0;
while( n / W >= 1 ) // Dopóki N / W jest większe równe 1
{
Wyk += n / W; // Do wykładnika dodaj iloraz n i W
W *= 2; // Pomóż W
}
return Wyk; // Zwróć wykładnik
}
int main(void)
{
long long N, K;
std::ios_base::sync_with_stdio(false);
std::cin >> N >> K;
if( K > N) std::cout << "Ta liczba jest parzysta";
else
{
if( Lagrange(N) > (Lagrange( K )+Lagrange(N-K)) ) std::cout << "Ta liczba jest parzysta";
else std::cout << "Ta liczba nie jest parzysta";
}
return 0;
}