Я относительно новичок в программировании на C #. Я строю калькулятор экспоненты, и он работает, но во время отладки я столкнулся с проблемой, которую я не понимаю, почему я получаю вывод, который я получаю.
Это рассматриваемый класс и методкогда я получаю вывод, я знаю, что это неправильно. (обратите внимание, что я позже исправил это, сделав его total *= lower
в цикле for)
using System;
namespace stars
{
public class Exponent
{
public int Exp(int lower, int power)
{
int total = lower;
if ( power == 0 )
{
//returns 1 for any exponent of 0
Console.WriteLine(" 1");
return 1;
}
else if ( lower == 0 )
{
//returns 0 for any base of 0
Console.WriteLine("0");
return 0;
}
else if ( ( power % 1 ) == 0 ) // check for integer exponent
{
for ( int i = 1; !( i > power ); i++ ) //math
{
lower *= lower;
}
Console.WriteLine(lower);
return total;
}
else
{
Console.WriteLine("error");
}
}
}
}
в последнем месте, где у меня есть forloop, чтобы (неправильно) вычислить значение некоторого целого числа длястепень другого целого числа, я (неправильно) выполняю вычисление ниже = ниже * ниже, где ниже - базовое число.
т.е. 5 ^ 4 ,, 5 = ниже, 4 = мощность
в любом случае, когда я запускаю его на 5 ^ 4, результат равен 0. Почему он выходит на 0? Я полагал, что это будет работать так:
5 * 5 = 25 ---> 25 * 25 = 625 ----> 625 * 625 ... и т. Д.
или является конечным значениемнастолько большой, что компилятор выплевывает 0.