Необходимо на C++ Напишите сам код.Дано число. В этом числе нужно

Необходимо на C++ Напишите сам код.

Дано число. В этом числе нужно поменять одну цифру таким образом,чтоб новое число делилось на 3 и было бы очень вероятным. В исходном числе необходимо обязательно поменять одну цифру,даже если начальное число теснее делилось на 3.
Программка получает на вход одно длинноватое естественное число.Длина числа может достигать 100 цифр.
Программка обязана вывести иное натуральное число,удовлетворяющее условиям:
1)Новое число должно отличаться от данного ровно одной цифрой.
2)Новое число обязано делиться на 3.
3)Новое число должно быть очень вероятным из всех таких чисел.

Задать свой вопрос
Данил Шакирдинов
лан, щяс помогу, может)
Альбина Ланшова
Я написал,а позже запутался и код не сохранил
Степан Погорелис
Так почему стоит учить с++?
2 ответа
include lt;cstdiogt;
include lt;cstringgt;

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 lt; n; i++)
        shift = (shift + buf[i] - '0') % 3;
   
    shift = 3 - shift;
    int sel = -1;
    for (int i = 0; i lt; n; i++)
        int tmp = buf[i] - '0' + shift;
        if (0 lt;= tmp amp;amp; tmp lt;= 9)
            sel = i;
            break;
       
   
    if (sel == -1)
        for (int i = n - 1; i gt;= 0; i++)
            int tmp = buf[i] - '0' - shift;
            if (0 lt;= tmp amp;amp; tmp lt;= 9)
                buf[i] -= shift;
                break;
           
       
    else
        buf[sel] += shift;
        while ('0' lt;= buf[sel] + 3 amp;amp; buf[sel] + 3 lt;= '9')
            buf[sel] += 3;
       
   
    printf("%s\n", buf);
    return 0;
include lt;iostreamgt;
include lt;stringgt;
include lt;vectorgt;
using namespace std;
 
int main()

    int sum = 0;
    vectorlt;intgt; v;
    string s;
    cin gt;gt; s;
    for (int i = 0; i lt; 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 lt;= v.size() amp;amp; (v[i] + z) gt; 9)
       ++i;
   
    if (i gt;= 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) lt; 9)
           v[i] += 3;
       
     
   
   for (int i = 0; i lt; v.size(); ++i)
       cout lt;lt; v[i];
   
   return 0;
Татьяна Мурша
У меня верно программа работает ^^
Надежда Сапосовская
Карасиков,вы нечаянно не на си делали?
Антон Марфуненков
Нет, на плюсах
Данил Великоредчанин
Просто коды различные
Олеся Сегура-Ласаррага
Хотя не знаю ,я скажем так новичок в это деле
Iljusha
Простенькие циклы сочинять только могу
Лилия Моторич
Не, ну если всем так не нравятся scanf и printf (хотя это абсолютно нормально так писать) могу поменять на std::cin, std::cout
Яна Лачугова
Ну я так и пишу)
Олеся Лепетухина
Только сходу вводишь using namespace std;и стд много раз писать не надобно
Степан Чимиров
Исправил, И больше поменять не могу.. попрошу модератора он исправит
, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы
задание экономиоти Рассмотри ситуацию: человек живёт на Крайнем Се-вере. С помощью каких

Экономика.

Человек живет на Крайнем Севере. С помощью каких благ удовлетворяются потребности

Экономика.

там лежат три яйца.у дома рос клен.Это гнездо сойки.на клёне гнездо

Русский язык.

Тыныштық күйіндегі карусель 35 с-та 3,0 рад/с бұрыштық жылдамдықпен үдей қозғалады.

Разные вопросы.

Сочинение на тему "Русский язык не сможет умереть!"

Математика.

Приветствую! Меня зовут Станислав, я представляю компанию under.site. Хотел бы предложить интересное решение

Разные вопросы.

Масса трёх одинаковых пакетов чая 180г чему равна масса

Математика.

Газообразный аммиак объёмом 2.24 л (н.у.) был полностью поглощён 14.68 мл

Химия.

Упражнение 2 Выпишите глаголы и вставьте пропущенные буквы

Русский язык.

Радиус окружности, описанной около равностороннего треугольника, равен 6. Найдите сторону треугольника

Геометрия.

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт