Loading...
Iamnikkysiderov avatar Iamnikkysiderov 15 Точки

4.Numbers In Reversed Order - не мога да си открия грешката в кода?

Judge-а ми дава 50/100 и не мога да разбера защо. Кодът ми работи, поне според мен, както трябва. Да не би да трябва да включа и отрицателни числа?

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

namespace _23.NumbersInReversedOrder
{
    class Program
    {
        static int counter = 0;

        static void Main(string[] args)
        {
            double n = double.Parse(Console.ReadLine());

            double result = GetReversed(n);
            Console.WriteLine(result);
        }

        static double GetReversed(double number)
        {
            if (number.ToString().Contains("."))
            {
                int numberInInt = GetToInt(number);
                double reversedInInt = 0;

                while (numberInInt > 0)
                {
                    double remainder = numberInInt % 10;
                    reversedInInt = (reversedInInt * 10) + remainder;
                    numberInInt = (int)(numberInInt / 10);
                }

                return BackToDouble((int)reversedInInt);
            }
            else
            {
                double reversed = 0;

                while (number > 0)
                {
                    double remainder = number % 10;
                    reversed = (reversed * 10) + remainder;
                    number = (int)(number / 10);
                }

                return reversed;
            }
        }

        static int GetToInt(double number)
        {
            while (number.ToString().Contains("."))
            {
                ++counter;
                number *= 10;
            }

            return (int)number;
        }

        static double BackToDouble(int number)
        {
            double numberInDouble = number;

            while (counter > 0)
            {
                --counter;
                numberInDouble /= 10;
            }

            return numberInDouble;
        }
    }
}
 

Тагове:
0
Programming Fundamentals
AleksanderKostadinov avatar AleksanderKostadinov 12 Точки

Мисля, че грешката ти е в GetReversed в първия if проверяваш дали има точка и тогава, ако е вярно го правиш на инт, а май трябва да е обратното.

 

0
31/01/2017 13:59:55
morgan avatar morgan 30 Точки

По-добре входа си го остави string (не го парсвай към int или double) и с един char масив го revers-ни.

0
ivan.peev.3158 avatar ivan.peev.3158 1 Точки

Ето ти едно по-лесно решение:

using System;

namespace _04.NumbersInReversedOrder
{
    class Program
    {
        static void Main()
        {
            string number = Console.ReadLine();
            Console.WriteLine(ReversNumber(number));
        }

        private static string ReversNumber(string number)
        {
            char[] resultToChar = number.ToCharArray();
            Array.Reverse(resultToChar);
            string result = string.Join("", resultToChar);
            return result;
        }
    }
}

0
ivan.d.uzunov avatar ivan.d.uzunov 22 Точки

http://pastebin.com/CSnMrVS7

Ето ти едно решение.

Възможно най-простичко с for- цикъл :)

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.