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

सी ++ प्रोग्राम योग और उत्पाद को शून्य से अलग करने के लिए आवश्यक चरणों की संख्या की गणना करने के लिए

मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है। एक ऑपरेशन में, हम ए में किसी एक तत्व प्रीसेट के साथ 1 जोड़ सकते हैं। यदि सरणी में सभी तत्वों का योग या उत्पाद शून्य के बराबर है, तो हम इस ऑपरेशन को एक बार और कर सकते हैं। हमें सरणी में सभी तत्वों के योग और गुणनफल दोनों को शून्य से अलग बनाने के लिए आवश्यक न्यूनतम चरणों की संख्या गिननी होगी?

इसलिए, यदि इनपुट ए =[-1, 0, 0, 1] जैसा है, तो आउटपुट 2 होगा, क्योंकि उत्पाद और योग दोनों 0 हैं। यदि हम दूसरे और तीसरे तत्व में 1 जोड़ते हैं, तो सरणी होगी हो [−1,1,1,1], योग 2 के बराबर होगा और गुणनफल -1 के बराबर होगा।

कदम

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

sum := 0
cnt := 0
n := size of A
for initialize i := 0, when i < n, update (increase i by 1), do:
   x := A[i]
   sum := sum + x
   cnt := cnt + (if x is same as 0, then 1, otherwise 0)
return (if sum + cnt is same as 0, then cnt + 1, otherwise cnt)

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;

int solve(vector<int> A) {
   int sum = 0, cnt = 0;
   int n = A.size();
   for (int i = 0; i < n; i++) {
      int x = A[i];
      sum += x;
      cnt += x == 0 ? 1 : 0;
   }
   return sum + cnt == 0 ? cnt + 1 : cnt;
}
int main() {
   vector<int> A = { -1, 0, 0, 1 };
   cout << solve(A) << endl;
}

इनपुट

{ -1, 0, 0, 1 }

आउटपुट

2

  1. सी ++ प्रोग्राम डोडेकैगन की संख्या गिनने के लिए जिसे हम आकार डी बना सकते हैं

    मान लीजिए कि हमारे पास एक संख्या d है। विचार करें कि अनंत संख्या में वर्गाकार टाइलें हैं और भुजाओं की लंबाई के साथ नियमित त्रिकोणीय टाइलें हैं। हमें यह पता लगाना है कि इन टाइलों का उपयोग करके हम कितने तरीकों से नियमित डोडेकागन (12-पक्षीय बहुभुज) बना सकते हैं। यदि उत्तर बहुत बड़ा है, तो परिणाम मोड 99

  1. उन नोड्स की गणना करें जिनका योग X के साथ C++ में एक फाइबोनैचि संख्या है

    एक बाइनरी ट्री दिया गया है जिसके नोड्स के भार संख्याओं के रूप में हैं। लक्ष्य उन नोड्स की संख्या का पता लगाना है जिनका वजन इस तरह है कि संख्या एक फाइबोनैचि संख्या है। फाइबोनैचि श्रृंखला में संख्याएं हैं:0, 1, 1, 2, 3, 5, 8, 13…। n वीं संख्या का योग है (n−1)वें और (n−2)वें। अगर वजन 13 है तो यह एक फाइ

  1. सी ++ प्रोग्राम किसी दिए गए नंबर के अंकों का योग करने के लिए

    C++ भाषा में अंकों के योग की गणना करने के लिए यहां एक उदाहरण दिया गया है, उदाहरण #include<iostream> using namespace std; int main() {    int x, s = 0;    cout << "Enter the number : ";    cin >> x;    while (x != 0) {