rohith1750 Ответов: 4

2 в степени n


Привет,

Может ли кто-нибудь показать мне, как я могу написать код для вычисления 2 в степени n в C#?

4 Ответов

Рейтинг:
32

Sergey Alexandrovich Kryukov

Я думаю, что предполагаемый ответ-это целочисленный метод, специфичный для степеней 2:

static int PowerOfTwo(int power) {
   return 1 << power;
}


Manfred Rudolf Bihy

Поскольку ОП точно не уточнил, чего он хочет, абсолютно верное решение! 5+
(Просто подождите, пока он не попросит вас о "полном решении" :) )

Sergey Alexandrovich Kryukov

Я могу объяснить почему. Это вопрос о понимании операций набора битов и связанной с ними арифметики. Если бы речь шла о вычислении мощностей, то речь шла бы о мощности с плавающей запятой P с плавающей запятой X.

Espen Harlinn

5+ Держу пари, что вы испытываете сильное искушение ответить в asm с этим :)

Рейтинг:
26

Nish Nishant

Воспользуйся Math.Pow.

http://msdn.microsoft.com/en-us/library/system.math.pow.aspx[^]


Espen Harlinn

5+ Это самый простой способ сделать это :)

Рейтинг:
14

Manfred Rudolf Bihy

Если n-элемент +|N, то вы можете сделать это следующим образом:

public static double twoPow(int n)
{
    if(n==0)
        return 1.0;
    else
        return 2.0 * twoPow(n-1);
}


Это, конечно, очень ограничительно и чисто для того, чтобы дать вам представление, и вы всегда можете пойти по тому, что сказал вам Нишант.

Ваше здоровье!


rohith1750

можете ли вы прислать мне полный код

Manfred Rudolf Bihy

Что вы подразумеваете под "полным кодом", с какой частью этой функции у вас есть проблемы?

rohith1750

я имею в виду пришлите мне полную программу

Sergey Alexandrovich Kryukov

@оптимизации памяти вашего устройства я не вижу. Больше никаких ответов для вас, извините. Это бесполезно.

Nish Nishant

Проголосовали 5, чтобы компенсировать суровый 1 голос. Кажется, каждый ответ в этой теме был 1 проголосован! Действительно странно!

Manfred Rudolf Bihy

Иногда бывают такие дни, как этот. Спасибо, Нишант!

Nish Nishant

Да, но в наши дни легче отследить, когда это происходит.

Manfred Rudolf Bihy

Вы имеете в виду постоянное отслеживание ваших точек CP rep ;)

Nish Nishant

Да, не нужно делать это постоянно. Но когда вы видите внезапное падение рейтинга поста, вы можете проверить журнал репутации :-)

fjdiewornncalwe

+5 для меня. ОП тянет за собой штуку "дай КОДЕЗ плз!". 1 - это глупо, потому что вы дали ему весь метод. Очевидно, он просто ничего не знает о создании класса или проекта для хранения этого метода.

Espen Harlinn

5+ приятно и поучительно

Рейтинг:
10

sampath1750

public static void Main()
{
    int value = 2,n;
    Console.Write("Enter n value");
    n = Convert.ToInt32(Console.ReadLine());
    for (int power = 0; power <= n; power++)
    {
         Console.WriteLine("{0}^{1} = {2:N0} ",
                           value,
                           power,
                           (long)Math.Pow(value, power));
         Console.ReadLine();
    }
}


Manfred Rudolf Bihy

Пожалуйста, сделайте отступ в своем коде. Спасибо!

Manfred Rudolf Bihy

Ладно, я просто сделал это для тебя!

Henry Minute

Вам было бы лучше использовать int.TryParse() вместо Convert.ToInt32()

fjdiewornncalwe

В этом я согласен с Генри.