इस खेल में, दो खिलाड़ी X और Y हैं। हमारा कार्य यह अनुमान लगाना है कि कौन खेल जीतेगा यदि दोनों बेहतर तरीके से खेलते हैं और X खेल शुरू करता है।
खेल
सिक्के के खेल में, N और M संख्या के सिक्कों के साथ दो ढेर होते हैं। खिलाड़ियों में से कोई एक खेल के लिए ढेर में से किसी एक को चुनता है। फिर कार्य ढेर को दो हिस्सों में बांटना है जब तक कि कोई एक खिलाड़ी ढेर को और विभाजित नहीं कर सकता।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
Input: M = 2 , N = 2 Output:X
स्पष्टीकरण - एक्स खेल शुरू करता है और एम ढेर (दोनों समान हैं) चुनें, और ढेर को दो में विभाजित करें। अब प्रत्येक में केवल एक सिक्का होगा, इसलिए Y के पास कोई चाल नहीं रह जाएगी। इससे X जीत जाएगा।
इस समस्या को हल करने के लिए, हमें यह देखना होगा कि खिलाड़ी X जीतता है। जिस स्थिति में खिलाड़ी X जीतता है, वह तब होता है जब किसी भी ढेर में सिक्कों की संख्या समान होगी। अन्यथा, Y विजेता होगा।
हमारे तर्क के कार्यान्वयन को दिखाने के लिए कार्यक्रम
उदाहरण
#include <iostream>
using namespace std;
int isXWinner(int M, int N) {
if (M % 2 == 0 || N % 2 == 0)
return 1;
return 0;
}
int main() {
int M = 1, N = 2;
cout<<"Game Starts!\n";
if(isXWinner(M,N))
cout<<"Player X is the Winner";
else
cout<<"Player Y is the Winner";
return 0;
} आउटपुट
Game Starts! Player X is the Winner