Loading...
NonaG avatar NonaG 111 Точки

Задача 15. Sum Reversed Numbers от Arrays and Lists - Exercises

Условието: Write a program that reads sequence of numbers, reverses their digits, and prints their sum.

Input - 123 234 12  Output - 774  Comments -321 + 432 + 21 = 774

Ако може за помощ, това е кодът, написан до някакъв етап от решението:

static void Main(string[] args)
        {
            var input = Console.ReadLine().Split().Select(int.Parse).ToList();
            List<int> digits = new List<int>();
            for (int i = 0; i < input.Count; i++)
            {
                for (int d = input[i] % 10; input[i] > 0; d = input[i] % 10)
                {
                    digits.Add(d);
                    input[i] = input[i] / 10;
                }
            }
          
        }

Видях доста решения в нета, но понеже най-големият ми проблем е конвертирането на типа данни, бих искала да разбера какъв е начинът от int - лист:32143221, докъдето съм го докарала, да се конвертира в int-лист: 321 432 21.

 

 

 

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

Можеш да съхраняваш в някоя променлива стойността на сегашното число, което обръщаш и вместо да добавяш отделните цифри в лист да добавяш числата. http://pastebin.com/jP2YUVYC

 Коментираните редове са решение с LINQ.

0
19/01/2017 13:20:15
NonaG avatar NonaG 111 Точки

int numberLength = input[i].ToString().Length;  - точно дължината на отделното число ми беше проблема, благодаря!

0
fbinnzhivko avatar fbinnzhivko 1586 Точки

Решение
Старо решение дано да ти помогне да разбереш конвертирането на типа данни.

2
vancho avatar vancho 430 Точки

Много просто е решението. Четеш с един обратен цикъл числата и ги запазваш в нов лист. Така ще се наредят на обратно и сумираш. Воала!

1
tobieski avatar tobieski 6 Точки

Здравей, 

Може ли да предложа друг подход към решаването на тази задача ? Защо още при прочитането на входа, не го запазиш, като масив от стрингове. След което да обърнеш стринга на обратно ( правиш си го на charArray, след това Array.Reverse() и накрая пак си го правиш на стринг ). Като направиш всичко това в 1 for loop, просто запазваш сумата във променлива и кастваш към int при самото събиране.
Ето ти пример за решение ( като аз използвам метод reverse(), който взима подаден стринг, и го обръща).
решение

P.S. Ти държиш ли за намиране на решение по твоя метод ? 

Поздрави !

1
NonaG avatar NonaG 111 Точки

Не, има доста решения във форума и в ГитХъб със char и string, просто се опитвам да натрупам варианти точно в конвертирането, защото това ми е най-трудният момент - липсва ми лексика (ако разглеждаме програмирането като език) smiley.

Благодаря на всички!

1
zhivko1985 avatar zhivko1985 34 Точки

Още едно решение

http://pastebin.com/PcnZAfa2

Аз лично се поизпотих с тази задача, но научих нещо ново...

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