Предмет: Информатика, автор: mikimouse9

Написать программу на С++

Приложения:

Ответы

Автор ответа: Dmitriy36281
0

#include <iostream>

#include <string>

using namespace std;

int main(){

int n;

cin >> n;

string s = to_string(n);

swap(s[0], s[s.length() - 1]);

n = stoi(s);

cout << n << endl;

return 0;

}


DigitalAnnihilator: валидации ввода тоже нет, если первыми символами будут не цифры на выходе будет 0
Dmitriy36281: Согласен, что можно быстрее, но так писать меньше. В самом условии не говориться, что число вводится, или откуда-то получается, оно просто есть и уже лежит в переменной, а ввод и вывод числа - это просто моё, возможно даже не нужное добавление. К тому же, по условию число натуральное, значит вначале не может стоять знак минус, остался только плюс, но в С++ при считывании числа "+5" в переменную типа int попадает просто 5, а значит программа работает корректно
DigitalAnnihilator: Попробуйте ввести не +5, а f5c
DigitalAnnihilator: У вас нет валидатора ввода, либо удалите ввод и действительно дефайните переменную, либо пишите валидатор, это очень просто
mikimouse9: Можно проще написать программу? Даже если она будет длиннее, это не важно
DigitalAnnihilator: Конечно можно, если не даже НУЖНО, друго вопрос, что ответ отмечен как лучший и больше тут решений невозможно добавить.
mikimouse9: хм я не отмечала что ответ лучший, давайте новое задание создам
mikimouse9: https://znanija.com/task/30481170
DigitalAnnihilator: Привет, ответ написал, как я и говорил, работает он быстрее. Назвал переменные так что ты должен понять что к чему. Если есть вопросы - пиши в коменты.
DigitalAnnihilator: На счет скорости работы:
Реализация из этого решения, на 40% медленнее реализации из моего, в среднем. Дело в том, что тут слишком медленно работают преобразования типов (string > int, int > string).
Похожие вопросы
Предмет: Алгебра, автор: banchiktima
Предмет: Алгебра, автор: ученик1077