इस खंड में, हम देखेंगे कि क्या हम एक संख्या को दो त्रिकोणीय संख्याओं के योग के रूप में व्यक्त कर सकते हैं या नहीं। त्रिकोणीय संख्याएं नीचे की तरह होती हैं -

उदाहरण से, हम देख सकते हैं कि 1, 3, 6, 10 कुछ त्रिकोणीय संख्याएं हैं। हमें संख्या N (मान लीजिए 16) को दो त्रिकोणीय संख्याओं (6, 10) के योग के रूप में व्यक्त करने की आवश्यकता है।
दृष्टिकोण बहुत सरल है। हमें N से कम सभी त्रिकोणीय संख्याएं प्राप्त करनी होंगी। इन मानों से एक सेट बनाएं। अब हमें सेट से एक संख्या X लेनी होगी, और जांचना होगा कि क्या N - X सेट में मौजूद है, तो X को दो त्रिकोणीय संख्याओं के योग के रूप में दर्शाया जा सकता है।
उदाहरण
#include <iostream>
#include <set>
using namespace std;
bool isSumTriangularNum(int n) {
set<int> s;
int i = 1;
while (1) { // n से कम सभी त्रिकोणीय संख्याएं ढूंढें और सेट में संग्रहीत करें
int x = i * (i + 1) / 2;
if (x >= n)
break;
s.insert(x);
i++;
}
for (auto x : s)
if (s.find(n - x) != s.end())
return true;
return false;
}
int main() {
int num = 16;
if(isSumTriangularNum(num)) {
cout << "Can be represented";
} else {
cout << "Cannot be represented";
}
}
आउटपुट
Can be represented