.NET 4.x Зная порядок, в котором Дилли нажимал на кнопки лифта, попробуйте определить общее количество этажей - C#
Формулировка задачи:
Я Учу С# 3 день, решил попытаться решить задачку:
В доме Вилли установили скоростной лифт новой экспериментальной модели. В этом лифте кнопки с номерами этажей заменены двумя другими кнопками. При нажатии на первую кнопку лифт поднимается на один этаж вверх, а при нажатии на вторую – опускается на один этаж вниз.
Младшему брату Вилли Дилли очень нравится кататься на новом лифте. Он катается на нём до тех пор, пока не побывает на каждом из этажей хотя бы по одному разу. После этого Дилли довольный возвращается домой.
Зная порядок, в котором Дилли нажимал на кнопки лифта, попробуйте определить общее количество этажей в доме Вилли и Дилли.
Дело в том, если я ввожу другие цифры вместо 2 и 1, то функция возвращает мне всегда значение 1, кто может объясните, по проще, в чём ошибка, если не затруднит...
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { public static int Drr(string s) // функция подсчёта количества этажей { int etaz = 1,chislo1; // etaz - переменная подсчёта количества этажей int chislo = System.Convert.ToInt32(s); // Строку в число while (chislo != 0) { chislo1 = chislo % 10; if ((chislo1 == 2) && (etaz == 1)) etaz = 1; else if (chislo1 == 2) etaz--; else if (chislo1 == 1) etaz++; chislo /= 10; } return etaz; } static void Main(string[] args) { string s; int i; Boolean f = true ; System.Console.Write("Введите последовательность нажатий кнопок 1 и 2\n"); s = System.Console.ReadLine(); for (i = 0; i == s.Length; i++) { if ((s[i] == 2) || (s[i] == 1)) f = true; else f = false; } if (f == false) System.Console.WriteLine("Вы ввели неправельное значение"); else { System.Console.Write(Drr(s)); } System.Console.ReadLine(); } } }
Решение задачи: «.NET 4.x Зная порядок, в котором Дилли нажимал на кнопки лифта, попробуйте определить общее количество этажей»
textual
Листинг программы
using System; namespace App1 { class Program { public static int Drr(string s) // функция подсчёта количества этажей { int etaz = 1; // текущий этаж int maxEtaz = 1; //количество этажей int chislo1; int chislo = System.Convert.ToInt32(s); // Строку в число while (chislo != 0) { chislo1 = chislo % 10; if (chislo1 == 1) etaz++; if (chislo1 == 2) etaz--; if (etaz > maxEtaz) maxEtaz = etaz; chislo /=10; } return maxEtaz; } public static void Main(string[] args) { string s; bool f = true; System.Console.Write("Введите последовательность нажатий кнопок 1 и 2\n"); s = System.Console.ReadLine(); for (int i = 0; i < s.Length; i++) { if ((s[i] != '2') && (s[i] != '1')) //s[i] - char, сравнивать надо тоже с char { f = false; break; } } if (f == false) System.Console.WriteLine("Вы ввели неправельное значение"); else { System.Console.Write(Drr(s)); } Console.ReadKey(true); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д