• Почему выходит из цикла?

    0xD34F
    @0xD34F
    Во-первых - неправильное условие окончания внутреннего цикла.

    Во-вторых - вы используете переменную res в двух качествах - как начальное значение последовательности, и как текущее значение последовательности. Очевидно, это должны быть две разные переменные.

    В-третьих - почему вы на каждой итерации внешнего цикла в качестве начального значения последовательности задаёте 2? Очевидно, что так вы будете получать каждый раз один и тот же результат, что вряд ли входит в ваши планы.

    В-четвёртых - зачем для внутреннего цикла использовать for? Достаточно и while.

    Вот вам исправленный вариант вашего кода, думайте:

    int
      N = 6,
      start = 2;
    
    for (int i = 0; i < N; i++) {
      int val = start;
    
      printf("\n%d: ", val);
    
      while (val != 1) {
        if (val % 2 == 0) {
          val = val / 2;
        } else {
          val = val * 3 + 1;
        }
    
        printf("\t%d", val);
      }
    
      start++;
    }
    Ответ написан
    Комментировать
  • Как лучше указывать путь к медиа файлам в HTML/CSS?

    Valter1234
    @Valter1234
    Привет!
    1 - href="img/images.png"
    лучше так, меньше сайт нагружает
    1 - background: url(../img/images.png)
    лучше тоже первый
    Ответ написан
    Комментировать
  • Как лучше указывать путь к медиа файлам в HTML/CSS?

    Lynn
    @Lynn
    nginx, js, css
    С точки зрения оптимизации первый вариант просто короче (меньше байтиков).
    С точки зрения SEO пофигу.
    Ответ написан
    Комментировать
  • Как перевести число из двоичной сс в пятеричную сс?

    @deadem
    10101010

    Нужно разложить число со степенными множителями. Паказатели степени, при переводе в пятеричную СС, должны быть тоже пятеричными. Затем посчитать степени, умножить и сложить результат. Все операции нужно делать в пятеричной СС.

    раскладываем:

    1*(2^12)+0*(2^11)+1*(2^10)+0*(2^4)+1*(2^3)+0*(2^2)+1*(2^1)+0*(2^0)=

    возводим в степень:

    1*(1003)+0*(224)+1*(112)+0*(31)+1*(13)+0*(4)+1*(2)+0*(1)=

    умножаем:

    1003+0+112+0+13+0+2+0=

    складываем:

    1140
    Ответ написан
    Комментировать