Avatar ·

C# में यह कैसे जाँचें कि कोई संख्या दो की घात है या नहीं?

सभी को नमस्ते! मैं C# में नया हूँ और मुझे एक समस्या का सामना करना पड़ा: एक method लिखना है जो जाँचता है कि कोई integer संख्या दो की घात है या नहीं (1, 2, 4, 8, 16, 32, आदि)। लगता है कि समस्या सरल है, लेकिन मैं कोई elegant solution नहीं सोच पा रहा हूँ। अभी मैंने यह code लिखा है: ```csharp public static bool IsPowerOfTwo(int n) { if (n <= 0) return false; while (n > 1) { if (n % 2 != 0) return false; n = n / 2; } return true; } ``` यह काम करता है, लेकिन मुझे लगता है कि यह बहुत भारी और inefficient है। मैंने सुना है कि bit operations के साथ कोई tricky तरीका है, लेकिन मुझे समझ नहीं आता कि यह कैसे काम करता है। क्या आप कोई अधिक सही और तेज़ solution बता सकते हैं? खासकर मुझे इसमें दिलचस्पी है: 1. बिना loops के जाँच कैसे करें? 2. Bit operations क्या हैं और कैसे