Професионална програма
Loading...
+ Нов въпрос
YavorSpassov+deleted! avatar YavorSpassov+deleted! 133 Точки

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;
        }

 

1
Programming Fundamentals
Martotko avatar Martotko 88 Точки

Пробва ли с decimal ?

0
YavorSpassov+deleted! avatar YavorSpassov+deleted! 133 Точки

Не виждам причина да ползвам decimal, а и в подсказката е посочено да се ползва double.

0
stoyan.grigorov avatar stoyan.grigorov 37 Точки

С int беше проблема.

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            double number = double.Parse(Console.ReadLine());
            double power = double.Parse(Console.ReadLine());

            double result = raiseToPower(number, power);
            Console.WriteLine(result);
        }
        private static double raiseToPower(double number, double power)
        {
            return Math.Pow(number, power);
        }
    }
}

така дава 100

1
YavorSpassov+deleted! avatar YavorSpassov+deleted! 133 Точки

Интересно защо тогава в подсказката е посочено да се ползва int за power:
 

static double RaiseToPower(double number, int power)

 

0
stoyan.grigorov avatar stoyan.grigorov 37 Точки

Нямам представа, нямах условието пред мен. Но без тестовия файл да съм видял предполагам , че е гърмяло защото теста му пуска double а ти чакаш int.

0
Maria_ls avatar Maria_ls 383 Точки

На тази задача примерния input ме хвърли в размисъл. Никъде не е посочено, че входа ще дойде на два реда - по един за основа и за степен. Не е казано и в какъв ред, та трябва да се гадае. Дадено е някакво 2, степенувано на 8-ма степен, че и форматирано при това...

1
21/09/2016 16:30:39
YavorSpassov+deleted! avatar YavorSpassov+deleted! 133 Точки

То трудността в тази задача е във входа и в подсказката. :)

1
Maria_ls avatar Maria_ls 383 Точки

Хахах, то аз почнах да мисля алгоритми как от вход едно число на един ред, трябва да докарам 2 други - int и double, пък то каква била работата smiley Щот подсказката за метода може и нищо да не означава, ако трябва да делиш по модул и т.н. за да стигнеш до тях.

0
21/09/2016 16:36:33
YavorSpassov+deleted! avatar YavorSpassov+deleted! 133 Точки

Вариантите бяха 2 - или ги подават на 2 реда или на 1. При втория вариант се ползва масив, но тъй като не сме стигнали до масиви, реших, че входът се подава на 2 реда.

0