foximmortal
22.11.2021 22:04

Дано натуральное число N, не превосходящее 10 000. Требуется найти и напечатать минимальную чётную цифру в десятичной записи числа N. Гарантируется, что
в десятичной записи числа N есть хотя бы одна чётная цифра.

Исправьте ошибку в программе


Дано натуральное число N, не превосходящее 10 000. Требуется найти и напечатать минимальную чётну

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
ДашаЕ1
06.09.2022 01:12
Сначала посмотрим, какое из чисел больше. Как в обычной арифметике: если вдруг надо вычесть из меньшего большее, мы вычитаем из большего меньшее и ставим в ответе знак минус.
Требуется сделать вычитание (группировка разрядов по 4 сделана для удобства чтения):
  111 0001 1011
- 101 0011 0101

Тут все хорошо, из большего вычитается меньшее.
Вычитаем "в столбик", как обычные числа, но помним, что система счисления двоичная, поэтому когда из 0 вычитается единица, то мы "занимаем единичку" у старшего разряда, уменьшая его на 1. Но, поскольку цифр-то всего две - 0 и 1, то заняв единицу в старшем разряде, мы понимаем, что там останется 0 или 1. А когда мы занимаем единицу? Да лишь тогда, когда от 0 должны отнять 1. Единичка из старшего разряда - это 10₂, т.е. на самом деле обычная десятичная двойка, и после вычитания из 10₂ единицы, получим единицу.
Как итог, в разряде:
0-0=0
1-1=0
1-0=1
0-1=1 и при этом в соседнем слева разряде надо тоже вычесть единицу по этим же правилам.

  111 0001 1011
- 101 0011 0101

       1 1110 0110

Это и есть ответ.
0,0(0 оценок)
Ответ:
anny60
19.02.2023 02:32
#include <iostream>
#include <list>

using namespace std;

int main() {
    list<int>mylist;
    //Делаем со списком, что хотим
    mylist.push_back(1);
    mylist.push_back(2);
    mylist.push_back(3);
    mylist.push_back(-4);
    mylist.push_back(5);
    for (auto i : mylist) {
        cout << i << " ";
    }
    cout << "\n";
    //Удаляем последний отрицательный элемент
    auto it = mylist.end();
    while (*it > 0) {
        if (it == mylist.begin()) {
            cout << "Not found.\n";
            return 0;
        }
        it--;
    }
    //Делаем со списком, что хотим
    mylist.erase(it);
    for (auto i : mylist){
        cout << i << " ";
    }
    return 0;
}
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота