Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 14.11.2015
Сообщений: 161

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

28.03.2017, 19:54. Показов 3172. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Задача: дано натуральное число (>=100), поменять местами первую и предпоследнюю цифры в нем. Я посчитала количество цифр в числе, и сделала алгоритм, позволяющий находить первую и предпоследнюю цифры для сколь угодно-значного числа. Но теперь вопрос, как составить новое число? Я понимаю, что 1234=1000+2*100+3*10+4, но тогда нужно искать все остальные цифры?
Как можно решить данное задание? На форуме нашла подобное, но там переводят в строку, а решение задачи такого не подразумевает.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.03.2017, 19:54
Ответы с готовыми решениями:

В масиве А поменять местами первую и последнюю ,вторую и предпоследнюю строки и т.д
Помогите найти ошибку,почему не меняет Вот мой простенький код #include <iostream> #include <conio.h> using...

Поменять местами n-ю и первую цифры числа
Задание 2. Дано натуральное число. Обозначим через п количество разрядов в числе. Например, 12345: 1 - пятая цифра, 2 - четвертая цифра,...

Поменять местами первую и последнюю цифры числа
Поменять местами первую и последнюю цифры числа. Помогите пожалуйста, а то с C++ вообще никогда не приходилось работать :(

9
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
28.03.2017, 20:12
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <algorithm>
#include <iostream>
#include <string>
 
int main()
{
    std::string str;
    std::cin >> str;
    if (str.length() > 2)
        std::swap(str.front(), *(str.rbegin() + 1));
    std::cout << str;
}
Добавлено через 1 минуту
Если хотите работать именно с цифрами, покажите код нахождения предпоследней цифры. Или можете сами просто в процессе итераций умножать некоторое число на 10.
0
1 / 1 / 0
Регистрация: 14.11.2015
Сообщений: 161
28.03.2017, 20:21  [ТС]
plast=y/10%10;

Добавлено через 41 секунду
для чего умножать число на 10?
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
28.03.2017, 20:28
Лучший ответ Сообщение было отмечено LaLeka как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
 
int main()
{
    int N = 34567, x = 1;
    for (int i = N/10; i; i /= 10)
        x *= 10;
    const int first = N / x, prevlast = N / 10 % 10;
    N += (prevlast - first) * x + (first - prevlast) * 10;
    std::cout << N;
}
1
848 / 651 / 323
Регистрация: 24.02.2017
Сообщений: 2,297
28.03.2017, 21:57
При последней цифре =0 выводить массив

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
#include <math.h>
 
int main(void)
{
 int chislo=1234,N=999,n=3,temp;
 
 cout<<chislo<<"\n";
 
 while(N)
 {
 if(chislo<=N)
 break;
 n++;
 N=N*10+9;
 }
 
 int *mas=new int[n];
 for(int i=n-1;i>=0; i--)
 {
 mas[i]=chislo%10;
 chislo/=10;
 }
 
  temp=mas[n-2];
  mas[n-2]=mas[0];
   mas[0]=temp;
  
   for(int i=0;i<=n-1; i++)
   chislo+=mas[i]*pow(10,n-1-i);
    cout<<chislo<<"\n";
system("pause");
      return 0;
}
1
1 / 1 / 0
Регистрация: 14.11.2015
Сообщений: 161
29.03.2017, 16:39  [ТС]
Цитата Сообщение от MrGluck Посмотреть сообщение
N += (prevlast - first) * x + (first - prevlast) * 10;
не могли бы вы прокомментировать, что происходит в этой строке?
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
29.03.2017, 16:44
Цитата Сообщение от LaLeka Посмотреть сообщение
не могли бы вы прокомментировать, что происходит в этой строке?
+= операция сложения с записью результата в ту же переменную.
prevlast - first соответствует числу, которое нужно добавить к первой цифре
x - необходимый коэффициент
first - prevlast - число, которое нужно добавить к предпоследней цифре (десяткам).
10 - коэффициент умножения.
1
1 / 1 / 0
Регистрация: 14.11.2015
Сообщений: 161
29.03.2017, 16:46  [ТС]
почему мы вычитаем из предпоследней цифры первую и умножаем на x и прибавляем к этому первоначальное число и прибавляем разность первой цифры и предпоследней умноженной на 10?
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
29.03.2017, 16:50
Лучший ответ Сообщение было отмечено LaLeka как решение

Решение

Цитата Сообщение от LaLeka Посмотреть сообщение
почему мы вычитаем из предпоследней цифры первую и умножаем на x и прибавляем к этому первоначальное число и прибавляем разность первой цифры и предпоследней умноженной на 10?
Чтобы поменять первую цифру, нам нужно добавить (prevlast - first) * (10 в нужной степени). x как раз содержит 10 в нужной степени. Вы вроде бы сами написали, что понимаете, что
Цитата Сообщение от LaLeka Посмотреть сообщение
1234=1000+2*100+3*10+4
Для предпоследней цифры мы знаем коэффициент - 10.
1
1 / 1 / 0
Регистрация: 14.11.2015
Сообщений: 161
29.03.2017, 19:33  [ТС]
огромное спасибо! я разобралась.
тему можно считать закрытой.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.03.2017, 19:33
Помогаю со студенческими работами здесь

Первую и последнюю цифры произвольно числа поменять местами
Есть произвольное пятизначное число, которое вводиться с клавиатуры, к примеру 65489. Нужно вывести первую и последнюю цифры и после чего...

Первую и последнюю цифры произвольно числа поменять местами
Есть произвольное пятизначное число, которое вводиться с клавиатуры, к примеру 65489. Нужно вывести первую и последнюю цифры и после чего...

В трехзначном числе поменять местами первую и последнюю цифры
Условие: разработать функцию которая в трехзначном числе меняет местами первую и последнию цифру с++ Разработал функцию, но вот что в...

Вторую и предпоследнюю цифру числа поменять местами
вторую и предпоследнюю цифру числа поменять местами через циклы, помогите пожалуйста срочно надо

Переставить местами первую и последнюю цифры
Дано четырехзначное натуральное число.Переставить местами первую и последнюю цифры


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru