সংক্ষিপ্ত বিবরণ
এই প্রোগ্রামটি একটি ধনাত্মক পূর্ণসংখ্যার বেস-২ লগারিদম (log₂ n) রিকার্সিভ পদ্ধতিতে গণনা করে।
গাণিতিক সূত্র
log₂ n = y অর্থাৎ 2ʸ = n
অ্যালগরিদম (রিকার্সিভ)
log2n(n) = 0 যদি n ≤ 1 log2n(n) = 1 + log2n(n / 2) যদি n > 1
উদাহরণ
- log₂ 20 = 4 (কারণ 2⁴ = 16 ≤ 20 < 32 = 2⁵)
- log₂ 64 = 6 (কারণ 2⁶ = 64)
সি কোড
#include <stdio.h>
unsigned int log2n(unsigned int n) {
return (n > 1) ? 1 + log2n(n / 2) : 0;
}
int main() {
unsigned int num = 20;
printf("%u\n", log2n(num));
return 0;
}
আউটপুট
4