Написать программу ** С++ Переставить первую и последнюю цифру в записи натурального...

0 голосов
150 просмотров

Написать программу на С++ Переставить первую и последнюю цифру в записи натурального числа n.


Информатика (176 баллов) | 150 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Вопрос является альтернативой к вопросу:

znanija.com/task/30446734

С тем лишь отличием, что решение тут через математические функции.

Хоть алгоритм по времени и не оптимизируется, но является более быстрым решением алгоритма из вопроса указанного выше.

Скорость работы кода в среднем до 40% выше чем в предыдущем.

По дополнительным вопросам - прошу в комменты.


Спасибо за отметку "лучшее" решение и нажатую кнопочку "спасибо" тут и в моем аккаунте.


image
(172 баллов)
0 голосов

#include

#include

using namespace std;

int main()

{

   int number, coun = 0, d, first, last;

   double pwr;

   setlocale(LC_ALL, "Russian");

   cout << "Поменять первую и последнюю цифры числа>"

   cout

   cin >> number;

   d = number;

   while (d > 0)

   {

       d /= 10;

       coun++;

       cout

   }

   pwr = pow(10, coun-1);

   //к примеру число равно 321

   //first = 3

   //last = 1

   //number = 32

   //number = 323

   //number = 23

   //number = 123

   first = number / (int)pwr;

   last = number % 10;

   number /= 10;

   number = number * 10 + first;

   number %= int(pwr);

   number += last * int(pwr);

   cout

   return 0;

}

(24 баллов)
0

Код я даже коментить не буду. Но программа работает не правильно, при вводе 1234 выдает - 4231. А должно по условию - 4123.

0

Переставить первую и последнюю цифру 12341 - первая цифра

0

4 - последняя цифра

0

4 встаёт на место первой цифры, а 1 на место последней

0

в итоге будет 4231

0

По твоему получается что последняя цифра должна быть перед первой

0

Сорри, ты прав, продолбался!