Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Denis4o avatar Denis4o 2 Точки

Data Types And Methods - English Name оf The Last Digit

Здравейте, 

Имам проблем с последния тест на задачата и не мога да разбера къде ми е грешката :)

using System;
namespace English_Name_Of_The_Last_Digit
{
    class Program
    {
        static void Main(string[] args)
        {
            long num = long.Parse(Console.ReadLine());
            GetLastDigit(num);
        }

        private static void GetLastDigit(long num)
        {
            var LastDigit = num % 10;
            switch (LastDigit)
            {
            case 0: Console.WriteLine("zero"); break;
                case 1: Console.WriteLine("one"); break;
                case 2: Console.WriteLine("two"); break;
                case 3: Console.WriteLine("three"); break;
                case 4: Console.WriteLine("four"); break;
                case 5: Console.WriteLine("five"); break;
                case 6: Console.WriteLine("six"); break;
                case 7: Console.WriteLine("seven"); break;
                case 8: Console.WriteLine("eight"); break;
                case 9: Console.WriteLine("nine"); break;
                default: Console.WriteLine(); break;
            }
                
        }
    }
}

Тагове:
0
Programming Fundamentals
SashoVasilev avatar SashoVasilev 51 Точки
Best Answer

Програмата ти дава грешен изход, когато въведеш отрицателно число.Например ако въведеш числото -234325 ,то резултатът от делението с остатък ще е -5 .Тъй като обаче ти нямаш  case -5 , програмата ти изкарва просто празен ред, защото това ти е в случаят default. Изводът е че трябва да направиш още 9 case със всяко едно от отрицателните числа от -1 до -9 .

0
ralitsa_d avatar ralitsa_d 171 Точки

По-краткият вариант е използването на Math.Abs(). Този метод връща абсолютната стойност на числото и не е необходимо да се прави отделна проверка за отрицателните числа.

3
borislav9212 avatar borislav9212 745 Точки

Здравей,

Добавяш едно Math.Abs(); и задачата дава 100/100. var LastDigit = Math.Abs(num % 10);

2
KrasimirPetkov avatar KrasimirPetkov 328 Точки

Иска се последната цифра. Числото може да е с плаваща запетая: например 123.55, или отрицателно. В условието пише "given number", а не "given positive integer number" :)

Ето моето решение:

using System;

class Program
{
    static void Main()
    {
        string[] a = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
        string n = Console.ReadLine();
        Console.WriteLine(a[int.Parse(n[n.Length-1].ToString())]);
    }
}

 

2
24/05/2016 13:16:52
DStefanow avatar DStefanow 112 Точки

Друга хитрина е да прочетеш числото като string след това просто взимаш последния символ и го сравняваш като char

2
r3v3nan7 avatar r3v3nan7 365 Точки

Доста интересни решения има. Браво на всички :) Заповядайте все пак и моето - https://github.com/pkindalov/Data-Types-and-Methods/blob/master/EnglishNameOfTheLastDigit/EnglishNameOfTheLastDigit.cs

1
tihomirj avatar tihomirj 33 Точки

Ето още едно решение този път с речници:

using System;
namespace EnglishNameLastDigit
{
    class Program
    {
        static void Main(string[] args)
        {
            long num = long.Parse(Console.ReadLine());
            byte digit = (byte)Math.Abs(num % 10); 
            Dictionary<intstring> digits = new Dictionary<intstring>
            {   [1] = "one",
                [2] = "two",
                [3] = "three",
                [4] = "four",
                [5] = "five",
                [6] = "six",
                [7] = "seven",
                [8] = "eight",
                [9] = "nine",
                [0] = "zero"
            };
            Console.WriteLine(digits[digit]);           
        }
    }
}
5
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.