সংখ্যা N কে বেস b-এ রিপ্রেজেন্ট করলে কি সেটি 1 দিয়ে শুরু হয়?
বেস b-এ N-র রিপ্রেজেন্টেশন b^m ≤ N ≤ 2b^m - 1 হলে প্রথম ডিজিট ১ হয়।
অ্যালগরিদম
m = 1থেকেfloor(log₂N)পর্যন্ত লুপ।- যদি
b^m ≤ N ≤ 2b^m - 1হয়, তবে True।
C++ কোড উদাহরণ
#include <iostream>
#include <cmath>
using namespace std;
bool startsWithOne(int N, int b) {
int m = log2(N);
for (int i=1; i<=m; i++)
if (N >= pow(b,i) && N <= 2*pow(b,i)-1) return true;
return false;
}
int main() {
int n=19, b=16;
cout << (startsWithOne(n,b) ? "Can be represented" : "Cannot be represented");
return 0;
}
আউটপুট
Can be represented