সমস্যা বিবরণ
ক্যালেন নম্বর সূত্র: C_n = 2^n × n + 1। n-তম ক্যালেন নম্বর বের করুন।
সমাধানের পদ্ধতি
- বিট শিফট ব্যবহার করে 2^n বের করুন:
1 << n। - n দিয়ে গুণ করুন এবং ১ যোগ করুন।
C++ কোড উদাহরণ
#include <bits/stdc++.h>
using namespace std;
unsigned get_cullen(unsigned n) {
return (1 << n) * n + 1;
}
int main() {
int n = 2;
cout << get_cullen(n);
return 0;
}
আউটপুট
9
ব্যাখ্যা
n=2: 2^2 × 2 + 1 = 4 × 2 + 1 = 9
নোট
বিট শিফট (1 << n) শুধু ছোট n-এর জন্য কাজ করে (n < 32)। বড় n-এর জন্য pow(2, n) বা বিগ ইন্টিজার ব্যবহার করুন।
জটিলতা
- সময়: O(1)
- স্থান: O(1)