Math Power
Question
Не е обяснено как се подава входът. Предполатам, че е в два реда, съответно за number и power. Написах 2 решения с Math.Pow() и с цикъл, но и при двете ми дава резултат от 90%. Интересува ме къде е проблемът. Решенията са следните:
static void Main(string[] args)
{
double number = double.Parse(Console.ReadLine());
int power = int.Parse(Console.ReadLine());
double result = raiseToPower(number, power);
Console.WriteLine(result);
}
private static double raiseToPower(double number, int power)
{
return Math.Pow(number, power);
}
static void Main(string[] args)
{
double number = double.Parse(Console.ReadLine());
int power = int.Parse(Console.ReadLine());
double result = raiseToPower(number, power);
Console.WriteLine(result);
}
private static double raiseToPower(double number, int power)
{
double result = number;
for (int num = 1; num < power; num++)
{
result *= number;
}
return result;
}
То трудността в тази задача е във входа и в подсказката. :)
Хахах, то аз почнах да мисля алгоритми как от вход едно число на един ред, трябва да докарам 2 други - int и double, пък то каква била работата Щот подсказката за метода може и нищо да не означава, ако трябва да делиш по модул и т.н. за да стигнеш до тях.
Вариантите бяха 2 - или ги подават на 2 реда или на 1. При втория вариант се ползва масив, но тъй като не сме стигнали до масиви, реших, че входът се подава на 2 реда.
На два реда е най-логично да бъде. Но как може степен да бъде дробно число?
Не е проблем. 4 на степен 1/2 е корен квадратен от 4, което е 2.
Да, това го има в математиката, но тук би променило изцяло логиката на метода. Няма да може да се запази същата логика с цикъла и умножението на числото по себе си. Истината е, че условието не е пълно и не се знае какъв вход да се очаква, за да се построи правилното решение.