Почему возведение в степень работает не так как я думаю

using System;

namespace ConsoleApp2
{
    class Program
    {


        static void Main(string[] args)
        {
            int x = 2, n = 3;
            int num;
            num = x;

            for (int i = 0; i < n; i++)
            {
                num *= x;
            }


            Console.WriteLine(num);
        }
    }
}

Доброго времени суток, простите за глупый вопрос, подскажите почему результат возведения в степень 16 а не 8


Ответы (1 шт):

Автор решения: aepot

Можно так исправить

int x = 2, n = 3;
int num;
num = 1;

for (int i = 0; i < n; i++)
{
   num *= x;
}

А можно так

int x = 2, n = 3;
int num;
num = x;

for (int i = 1; i < n; i++)
{
   num *= x;
}

Разберите оба варианта используя отладку.

Чем эти варианты отличаются? Какой из них лучше и почему?

→ Ссылка