#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int number, coun = 0, d, first, last;
double pwr;
setlocale(LC_ALL, "Russian");
cout << "Поменять первую и последнюю цифры числа>" << endl;
cout << "Введите число: ";
cin >> number;
d = number;
while (d > 0)
d /= 10;
coun++;
cout << "count = " << coun << endl;
}
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 << "Result: " << number << endl;
return 0;
Вопрос является альтернативой к вопросу:
znanija.com/task/30446734
С тем лишь отличием, что решение тут через математические функции.
Хоть алгоритм по времени и не оптимизируется, но является более быстрым решением алгоритма из вопроса указанного выше.
Скорость работы кода в среднем до 40% выше чем в предыдущем.
По дополнительным вопросам - прошу в комменты.
Спасибо за отметку "лучшее" решение и нажатую кнопочку "спасибо" тут и в моем аккаунте.
Copyright © 2024 SCHOLAR.TIPS - All rights reserved.
Answers & Comments
Verified answer
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int number, coun = 0, d, first, last;
double pwr;
setlocale(LC_ALL, "Russian");
cout << "Поменять первую и последнюю цифры числа>" << endl;
cout << "Введите число: ";
cin >> number;
d = number;
while (d > 0)
{
d /= 10;
coun++;
cout << "count = " << coun << endl;
}
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 << "Result: " << number << endl;
return 0;
}
1 - первая цифра
Verified answer
Вопрос является альтернативой к вопросу:
znanija.com/task/30446734
С тем лишь отличием, что решение тут через математические функции.
Хоть алгоритм по времени и не оптимизируется, но является более быстрым решением алгоритма из вопроса указанного выше.
Скорость работы кода в среднем до 40% выше чем в предыдущем.
По дополнительным вопросам - прошу в комменты.
Спасибо за отметку "лучшее" решение и нажатую кнопочку "спасибо" тут и в моем аккаунте.