Загрузка...

2nd code conversion

Thread in C# created by wolf228z Feb 21, 2022. 191 view

  1. wolf228z
    wolf228z Topic starter Feb 21, 2022 46 Oct 27, 2018
    Привет, пишу небольшую программу, возникла проблема в реализации. У меня есть строка двоичного кода. Мне посчитать подряд идущие 0 и 1. Примерно должно выглядеть вот так:
    Входные данные: 110111000
    Что должно быть в результате: 1201303
    Заранее спасибо.
     
  2. DenZ2281337
    DenZ2281337 Feb 21, 2022 Banned 2 Aug 5, 2019
    Сплитишь строку в массив и считаешь посимвольно, аля если некст число = предыдущему, то n++, если нет, то выводишь число и i, и перескакиваешь на некст позицию
     
    1. vtlstolyarov
      Так у тебя проблемка в реализации? или ты хочешь чтобы за тебя написали? DenZ2281337, не надо сплить в массив - можно бежать прямо по строке точно также как по массиву.
  3. mikuzeboka
    mikuzeboka Feb 23, 2022 5 Jan 13, 2021
    Так должно же вывести 2133
    The post was merged to previous Feb 23, 2022
    Это преобразование Do2 вродь называется, погугли
    The post was merged to previous Feb 23, 2022
    Code
    bool nigga = str[0] == '-' ? false : true;
    str = nigga ? str : str.Remove(0, 1);
    str = Convert.ToString(int.Parse(str), 2);
    string result = str[0] < 5 ? "0" : "5";
    bool pos = str[0] < 5 ? false : true;
    for (int o = 1; o < str.Length; o++)
    if (str[o] == '0')
    {
    if (result[result.Length > 0 ? result.Length - 1 : 0] == '4')
    result += '0';
    else
    if (!pos)
    {
    List<char> chars = result.ToList();
    chars[chars.Count - 1] = (char)((int)chars[chars.Count - 1] + 1);
    result = new string(chars.ToArray());
    }
    else
    result += '0';
    pos = false;
    }
    else if (str[o] == '1')
    {
    if (result[result.Length > 0 ? result.Length - 1 : 0] == '9')
    result += '5';
    else
    if (pos)
    {
    List<char> chars = result.ToList();
    chars[chars.Count - 1] = (char)((int)chars[chars.Count - 1] + 1);
    result = new string(chars.ToArray());
    }
    else
    result += '5';
    pos = true;
    }
    return nigga ? result : "-" + result;
    Еле нашёл
     
Top
Loading...