В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
lewa0131
lewa0131
25.07.2020 18:19 •  Информатика

Число N = 2248. Запишите его в системе с основанием 2.

Показать ответ
Ответ:
chcuvivhcyxu
chcuvivhcyxu
19.02.2020 17:56
#include <cstdio>
#include <cstring>

int
main(void)
{
    enum
     {
        MAX_BUF_SIZE = 100
    };

    char buf[MAX_BUF_SIZE];
    scanf("%s", buf);
    int n = strlen(buf);
    int shift = 0;
    for (int i = 0; i < n; i++) {
        shift = (shift + buf[i] - '0') % 3;
    }
    shift = 3 - shift;
    int sel = -1;
    for (int i = 0; i < n; i++) {
        int tmp = buf[i] - '0' + shift;
        if (0 <= tmp && tmp <= 9) {
            sel = i;
            break;
        }
    }
    if (sel == -1) {
        for (int i = n - 1; i >= 0; i++) {
            int tmp = buf[i] - '0' - shift;
            if (0 <= tmp && tmp <= 9) {
                buf[i] -= shift;
                break;
            }
        }
    } else {
        buf[sel] += shift;
        while ('0' <= buf[sel] + 3 && buf[sel] + 3 <= '9') {
            buf[sel] += 3;
        }
    }
    printf("%s\n", buf);
    return 0;
}
0,0(0 оценок)
Ответ:
Rednegel
Rednegel
19.02.2020 17:56
#include <iostream>
#include <string>
#include <vector>
using namespace std;
 
int main()
{
    int sum = 0;
    vector<int> v;
    string s;
    cin >> s;
    for (int i = 0; i < s.size(); ++i) {
       v.push_back((int)s[i] - 49);
       ++sum; ++v[i];
   }
   int z = sum % 3; z = 3 - z;
   {
    int i = 0;
    while (i <= v.size() && (v[i] + z) > 9) {
       ++i;
    }
    if (i >= v.size()) {
      if (z == 3) {
          v[v.size() - 1] -= 3;
      } else {
          v[v.size() - 1] -= (3 + z);
      }
    } else {
       v[i] += z;
       while ((v[i] + 3) < 9) {
           v[i] += 3;
       }
     }
   }
   for (int i = 0; i < v.size(); ++i) {
       cout << v[i];
   }
   return 0;
}
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота