Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ «Неделя первая - Условный оператор и циклы - Двоичные числа» #5

Войти
Регистрация
Восстановить пароль
Рейтинг: 5.00. Голосов: 1.

С++ «Неделя первая - Условный оператор и циклы - Двоичные числа» #5

Запись от acmades размещена 13.07.2017 в 04:08
Обновил(-а) acmades 15.07.2017 в 13:11 (Изменение категории)

Задание:
На вход дано целое положительное число N. Выведите его в двоичной системе счисления без ведущих нулей.

Пример

stdin -> stdout
5 -> 101
32 -> 100000
1 -> 1
Подсказка

число N можно считывать в переменную типа int
в этой задаче вам может пригодиться контейнер vector; напоминаем, что добавление значения x в конец вектора v делается так: v.push_back(x);

Моё решение:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;
int main()
{
    int N, y, e, i = 0;
    vector<int> v; //создаем пустой вектор
    cin >> N; //ввели число
    while (N >=1) { // ниже мы делим N на 2 до тех пор пока N не станет меньше 1
        y = N % 2; //узнаем остаток от деления - это наша двоичная цифра
        N = N / 2; //
        v.push_back(y); //записываем остаток от деления в вектор, в нем будет двоичный код, только в обратном порядке
        ++i; //чтобы вычислить размер вектора
    }
    for (e = i - 1/*вектор с 0 считается*/;e >= 0;e--) { //переписываем вектор в правильном порядке
        cout << v[e];
    }
    return 0;
}
Чет кажется нагородил немного лишнего. Как думаете?
Всего комментариев 2

Комментарии

  1. Старый комментарий
    у ноля нет двоичного представления?
    Запись от MansMI размещена 13.07.2017 в 06:40 MansMI на форуме
  2. Старый комментарий
    Цитата:
    Сообщение от MansMI Просмотреть комментарий
    у ноля нет двоичного представления?
    Есть конечно. Но в задании этого не предусмотрено, а то бы еще дополнительное условие дописал.
    Запись от acmades размещена 13.07.2017 в 06:53 acmades вне форума
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru