ট্রায়্যাঙ্গুলার নাম্বার = Tₙ = n(n+1)/2 (১, ৩, ৬, ১০, ১৫, ...)।
সংখ্যা N কি দুটি ট্রায়্যাঙ্গুলার নাম্বারের যোগফল?
অ্যালগরিদম
N-র চোয় ছোট সব ট্রায়্যাঙ্গুলার নাম্বার সেটে রাখুন।- প্রতিটি
xসেটে,N-xসেটে আছে কিনা চেক করুন।
C++ কোড উদাহরণ
#include <iostream>
#include <set>
using namespace std;
bool isSumOfTwoTriangular(int n) {
set<int> s;
for (int i=1; ; i++) {
int t = i*(i+1)/2;
if (t >= n) break;
s.insert(t);
}
for (int x : s)
if (s.count(n-x)) return true;
return false;
}
int main() {
int n = 16;
cout << (isSumOfTwoTriangular(n) ? "Can be represented" : "Cannot be represented");
return 0;
}
আউটপুট
Can be represented