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

инверсия числа интересным способом

22.10.2021, 20:28. Показов 2430. Ответов 13
Метки c++ (Все метки)

Студворк — интернет-сервис помощи студентам
используя функции, но не используя циклы, массивы, списки и строки.. а ещё не выводя по одному числу..
типо, ввёл 1234, вывелось 4321..
либо я ещё не дошёл до изучения ништяков для таких задач, либо тут надо что-то хитрое.. до чего я не допру.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.10.2021, 20:28
Ответы с готовыми решениями:

Инверсия числа
Привет. Помогите вывести число например 12345 задом наперед не используя циклов.Заранее спасибо

Инверсия двоичного представления четных восьмеричных цифр, входящих в состав числа
Добрый день! Помогите пожалуйста с программой. В программу вводится число. Нужно выполнить инверсию двоичного представления ...

Зацикливается, причем весьма интересным способом.
Задание: "Записати у нову стрічку кожен 3-й символ із стрічки довжиною «M» з позиції «P»" "Записать в новую строку каждый 3-й...

13
Гвоздь Задиров
 Аватар для Folian
1718 / 1117 / 337
Регистрация: 25.01.2019
Сообщений: 2,940
22.10.2021, 21:25
Цитата Сообщение от s1mulacrum Посмотреть сообщение
либо тут надо что-то хитрое
рекурсия
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12922 / 6789 / 1818
Регистрация: 18.10.2014
Сообщений: 17,178
22.10.2021, 21:30
Цитата Сообщение от s1mulacrum Посмотреть сообщение
не используя циклы, массивы, списки и строки
Строки - это массивы.

Но если пользователь введет 1234567890123456789012345678901234567890, то как это предлагается обрабатывать, не используя массивы?

Цитата Сообщение от s1mulacrum Посмотреть сообщение
а ещё не выводя по одному числу..
Цитата Сообщение от s1mulacrum Посмотреть сообщение
типо, ввёл 1234, вывелось 4321..
Не понял. Что значит "не выводя по одному числу"? 4321 - это одно число. Нельзя сразу выводить 4321? Или что?
0
1 / 1 / 0
Регистрация: 13.09.2021
Сообщений: 34
22.10.2021, 21:32  [ТС]
я имел ввиду, что число "4321" не должно вывестись как "4,3,2,1"(хоть оно и может выглядеть цельным), что-то такое...
0
Just Do It!
 Аватар для XLAT
4190 / 2645 / 654
Регистрация: 23.09.2014
Сообщений: 8,925
Записей в блоге: 3
22.10.2021, 21:33
Цитата Сообщение от s1mulacrum Посмотреть сообщение
типо, ввёл 1234, вывелось 4321..
C++
1
2
3
4
5
6
#include <iostream>
 
int main()
{   int n; std::cin >> n;
    std::cout << n%10*1000 + n/10%10*100 + n/100%10*10 + n/1000%10 << '\n';
}
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12922 / 6789 / 1818
Регистрация: 18.10.2014
Сообщений: 17,178
22.10.2021, 21:39
Цитата Сообщение от Folian Посмотреть сообщение
рекурсия
Разве что... Причем еще на уровне ввода данных... Но если делать на уровне ввода данных, то вывод получится по одной цифре. А так якобы нельзя.

Цитата Сообщение от XLAT Посмотреть сообщение
C++
1
2
    int n; std::cin >> n;
    std::cout << n%10*1000 + n/10%10*100 + n/100%10*10 + n/1000%10 << '\n';
А где сказано, что число будет именно четырехзначным? Или что оно поместится в int?

Цитата Сообщение от s1mulacrum Посмотреть сообщение
я имел ввиду, что число "4321" не должно вывестись как "4,3,2,1"
Это называется "цифры". Не выводя по одной цифре.

Цитата Сообщение от s1mulacrum Посмотреть сообщение
инверсия числа
В каком диапазоне число?
1
Just Do It!
 Аватар для XLAT
4190 / 2645 / 654
Регистрация: 23.09.2014
Сообщений: 8,925
Записей в блоге: 3
22.10.2021, 21:41
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
А где сказано, что число будет именно четырехзначным?
вот когда будет сказано про конкретную разрядность, то тогда я вам и напишу или сами напишите.
0
1 / 1 / 0
Регистрация: 13.09.2021
Сообщений: 34
23.10.2021, 00:15  [ТС]
Добавлено через 4 минуты
C++
1
2
    int n; std::cin >> n;
    std::cout << n%10*1000 + n/10%10*100 + n/100%10*10 + n/1000%10 << '\n';
а ещё тут числа меньше чем 4-х циферные выводит неправильно...
может, как-то через перегрузку можно залепить?

Добавлено через 2 минуты
диапазон... было б хорошо хоть до 999999 чтоб работало, хотя лучше если б можно было перевернуть даже большие числа...

Добавлено через 25 минут
хотя я понял принцип.. через иф-элс бы работало. пока что пусть будет до 4-х циферных чисел.. как это влепить в функцию? иф-элс же цикл...

Добавлено через 1 час 19 минут
в общем...
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
using namespace std;
void func(int n) {
 
    if (n < 100) {
        cout << 100 % 10 * 10 + n / 1000 % 10;
 
    }
    else if (n < 1000) {
        cout << 10 % 10 * 100 + n / 100 % 10 * 10 + n / 1000 % 10;
    }
    else if (n < 10000) {
        cout << n % 10 * 1000 + n / 10 % 10 * 100 + n / 100 % 10 * 10 + n / 1000 % 10;
 
    }
 
 
    
}
int main() {
    int n;
    cin >> n;
    func;
    return 0;
}
я не знаю, работает ли оно. а ещё я не знаю как вернуть значение тут.. а как?..
1
Гвоздь Задиров
 Аватар для Folian
1718 / 1117 / 337
Регистрация: 25.01.2019
Сообщений: 2,940
23.10.2021, 01:26
s1mulacrum, вот тебе шишка штука!
Собирал из говна и палок костылей, но костыли у меня отобрали; так что вот:

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
#include <iostream>
#include <cmath>
 
int bar(int val = 0, bool input = false)
{
    static int x { 0 };
    static int pwr { 0 };
    if(input)
        x += val * pow(10, ++pwr);
    return x / 10;
}
 
void foo()
{
    char x {};
    std::cin.get(x);
    if(x == '\n') return;
    bar(static_cast<int>(x) - '0', true);
    foo();
}
 
int main()
{
    foo();
    int res = bar();
    std::cout << res;
 
    return 0;
}
Да, оно одноразовое и вообще только как пример. Напильник не помешает.

Не пойму как так происходит: только вот хотел чучуть посмотреть пародию пушного на стинга и обнаруживаю себя с телефоном у хари, с жадным взглядом в "леон профессионал" на 50 минуте, при том что нормальные экраны есть.
Магия хорошего кино, видимо
1
1 / 1 / 0
Регистрация: 13.09.2021
Сообщений: 34
23.10.2021, 08:41  [ТС]
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
#include <iostream>
using namespace std;
int funcone(int n) {
    return 100 % 10 * 10 + n / 1000 % 10;
}
int functwo (int n) {
    return 10 % 10 * 100 + n / 100 % 10 * 10 + n / 1000 % 10;
    }
 int  functhree (int n) {
     return n%10 * 1000 + n / 10 % 10 * 100 + n / 100 % 10 * 10 + n / 1000 % 10;
    }
 
int main() {
    int n;
    cin >> n;
    if (n < 100) {
        cout << funcone;
    }
    else if (n < 1000) {
        cout << functwo;
    }
    else if (n < 10000) {
        cout << functhree;
    }
}
да.. чутка я погорячился с прошлым недоразумением)
так вот.. по идее это должно работать, но выводит фигпойми что. почему?
0
Модератор
Эксперт С++
 Аватар для zss
13769 / 10962 / 6491
Регистрация: 18.12.2011
Сообщений: 29,236
23.10.2021, 09:07
Лучший ответ Сообщение было отмечено s1mulacrum как решение

Решение

Все же рекурсия лучше подходит под условие задачи
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
void f(int& x,int& res)
{
    res=res*10+x%10;
    x/=10;
    if(x==0)return;
    f(x,res);
}
int main()
{
    int n=12345,res=0;
    f(n,res);
    std::cout<<res;
    return 0;
}
1
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12922 / 6789 / 1818
Регистрация: 18.10.2014
Сообщений: 17,178
23.10.2021, 09:18
Цитата Сообщение от s1mulacrum Посмотреть сообщение
по идее это должно работать, но выводит фигпойми что. почему?
Так а что это такое

C++
1
cout << funcone;
?
0
1 / 1 / 0
Регистрация: 13.09.2021
Сообщений: 34
25.10.2021, 00:35  [ТС]
ZSS, а почему тут
C++
1
void f(int& x,int& res)
после инта &?

Добавлено через 15 минут
TheCalligrаpher, хотел вывести результат)) но я уже понял что на одну строчку кода сделал слишком много ошибок)
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,683
Записей в блоге: 14
25.10.2021, 08:01
Folian, не проще ли так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cmath>
 
int bar(int v)
{
    int acc=0;
    if (v==0) return acc;
    while (v)
    {
        acc=acc*10+v%10;
        v=v/10;
    }
    return acc;
}
 
int main()
{
    int v;
    std::cin >> v;
    std::cout << bar(v);
    return 0;
}
Ах, там циклы запрещены? Тогда так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <cmath>
 
int bar(int v,int acc=0)
{
    if (v==0) return acc;
    return bar(v/10,acc*10+v%10);
}
 
int main()
{
    int v;
    std::cin >> v;
    std::cout << bar(v);
 
    return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.10.2021, 08:01
Помогаю со студенческими работами здесь

Инверсия числа
Доброго времени суток. Задача стоит в том, чтобы &quot;открыть Америку&quot; в области перевода числа из десятичной системы в двоичную, то есть не...

Инверсия двоичного числа
нужно написать программу, которая выполняла бы инверсию двоичного числа вводим 11110000 вывод на экран 00001111 (код писать полностью...

Инверсия разрядов числа
Нужно составить программу, производящую инверсию всех разрядов чисел, хранящихся в массиве данных из 20 элементов. Буду очень благодарен!!!

Обратные простые числа инверсия
5. В числовом массиве, заданных с клавиатуры, перевести в начале числа которые удовлетворяют заданное услови, потом остальные сохраняя их...

Работа с битами числа - установка, сдвиг, инверсия
Здача: 1. Установить в 1 все биты младшего байта 2. циклично сдвинуть все байты вправо на 4 бита 3. Обратить 0,2,11,15 биты ...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
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
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru