Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में संख्याओं का चयन करके योग के निरपेक्ष अंतर के आधार पर गेम के विजेता को प्रेडिक्ट करें


इस समस्या में, हमें n संख्याओं का एक ऐरे दिया गया है। और दो खिलाड़ी X और Y हैं। हमारा कार्य गेम के विजेता को प्रेडिक्ट करना है।

खिलाड़ी X के जीतने के लिए X और Y द्वारा चुनी गई संख्याओं के योग का निरपेक्ष अंतर 4 का गुणक होना चाहिए। यदि यह 4 से विभाज्य नहीं है, तो Y जीतता है। खिलाड़ी X गेम शुरू करता है।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

Input: a[] = {3 6 9 12} Output: X Explaination: X selects 3 and 6 Y selects 12 and 9 |3+6 - 12+9| = 12, 12 is a multiple of 4.

इस समस्या को हल करने के लिए, हम जांचेंगे कि क्या ऐरे का प्रत्येक एलिमेंट 4 से विभाज्य है और जब हम किसी संख्या को 4 से विभाजित करते हैं तो शेषफल पर नज़र रखेंगे। यदि प्रत्येक शेषफल की घटना सम है, तो X जीतता है। यानी निरपेक्ष अंतर 4 से विभाज्य है।

arr[i]%4 की गिनती प्रत्येक मान 0, 1, 2, 3 के लिए सम होनी चाहिए।

हमारे एल्गोरिदम के कार्यान्वयन को दिखाने वाला प्रोग्राम,

उदाहरण

#include <iostream> using namespace std; int playGame(int a[], int n) {    int count[4] = {0,0,0,0};    for (int i = 0; i < n; i++) {       for(int j = 0; j<4;j++){          if(a[i]%4 == j)             count[j]++;       }    }    if (count[0] % 2 == 0 && count[1] % 2 == 0 && count[2] % 2 == 0 && count[3] == 0)       return 1;    else       return 2; } int main() {    int a[] = { 4, 8, 5, 9 };    int n = sizeof(a) / sizeof(a[0]);    cout<<"Game Started!\n";    if (playGame(a, n) == 1)       cout << "X wins the Game";    else       cout << "Y wins the Game";    return 0; }

आउटपुट

Game Started! X wins the Game

  1. - C++ में नंबर्स को उनके डिजिट्स के योग के अनुसार सॉर्ट करें

    इस सेक्शन में हम देखेंगे कि नंबर्स को उनके डिजिट्स के योग के अनुसार कैसे सॉर्ट करें। इसलिए यदि किसी नंबर का डिजिट्स का योग कम है, तो वह पहले रखा जाएगा, फिर अगला नंबर बड़े डिजिट्स योग के साथ रखा जाएगा।data = {14, 129, 501, 23, 0, 145}सॉर्ट करने के बाद, वे होंगे -data = {0, 14, 23, 501, 145, 129}यहां

  1. - C++ में size_t और int में क्या अंतर है?

    मुख्य अंतर यदि हम मानक पर विचार करें, तो दोनों 16-बिट आकार के इंटीजर्स हैं। लेकिन वास्तविक कार्यान्वयन में महत्वपूर्ण अंतर हैं: 1. साइन्डनेस (Signedness) int साइन्ड है (ऋणात्मक मान संभाल सकता है) size_t अनसाइन्ड है (केवल गैर-ऋणात्मक मान) 2. आकार आर्किटेक्चर पर निर्भर करता है आर्किटेक्चरint आकार

  1. - C++ में int और long में क्या अंतर है?

    int int डेटा टाइप का उपयोग पूर्णांक मानों को संग्रहीत करने के लिए किया जाता है। यह साइन्ड या अनसाइन्ड हो सकता है। int डेटा टाइप 32-बिट या 4 बाइट्स का होता है। यह मान संग्रहीत करने के लिए long से कम मेमोरी क्षेत्र की आवश्यकता होती है। int कीवर्ड का उपयोग पूर्णांक वेरिएबल घोषित करने के लिए किया जाता ह