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

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

28.03.2017, 19:54. Показов 3146. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru