Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
maxr96
0 / 0 / 0
Регистрация: 27.03.2014
Сообщений: 13
1

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

27.03.2014, 00:49. Просмотров 952. Ответов 13
Метки нет (Все метки)

Задачка легкая, но уже долго ломаю над нею голову. Дано натуральное число n=12345791, нужно чтобы виходило группами по три цифры 12 345 791. Помогите пожалуйста.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2014, 00:49
Ответы с готовыми решениями:

Получить символьное представление цифр и пробелов отделяющих группы по три цифры,начиная справа
Практикуюсь в С++ Написал код. bool **Madj; int *Visit; int main(){ int...

Получить число, состоящее из суммы цифр, если оно четное - найти сумму двух первых цифр, иначе - разность
Даны цифры двух целых чисел: трехзначного а3а2а1 и двусмысленного b2b1 где...

Дано действитёльное число х. Получить целую часть *) числа х; затем — число х, округленное до ближайшего целого; затем — число х без дробных цифр.
Здравствуйте помогите написать программу. Дано действитёльное число х....

Дано целое число N. Получить число M, у которого порядок цифр обратный по отношению к N
Написать программу в с++: Дано целое число N. Получить число M, у которого...

Число состоит из цифр от 0 до 4; получить число, в котором каждая цифра увеличена вдвое
Число состоит из цифр от 0 до 4, получить число в котором каждая цифра...

13
MastAKK
145 / 136 / 18
Регистрация: 13.10.2012
Сообщений: 592
27.03.2014, 01:06 2
Олимпиадная задачка.
Просто с конца к началу каждые 3 цифры отделяйте пробелом.
1
maxr96
0 / 0 / 0
Регистрация: 27.03.2014
Сообщений: 13
27.03.2014, 01:07  [ТС] 3
Но как это задать? Что-то никак не могу понять.
0
MastAKK
145 / 136 / 18
Регистрация: 13.10.2012
Сообщений: 592
27.03.2014, 01:27 4
Как вариант
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
 
int main(){
   std::string str;
   std::cin >> str;
   short j = 0;
   for(int i = str.length(); i > 0; --i){
      if(j == 3){
         str.insert(i, " ");
         j = 0;
      }
      ++j;
   }
   std::cout << str;
   return 0;
}
1
maxr96
0 / 0 / 0
Регистрация: 27.03.2014
Сообщений: 13
27.03.2014, 01:32  [ТС] 5
Спасибо.
0
maxr96
0 / 0 / 0
Регистрация: 27.03.2014
Сообщений: 13
06.04.2014, 18:35  [ТС] 6
А можно ли сделать такую же программу только с использованием библиотеки <string.h>, а не <string> как было написано выше?
0
Simple Boy
3 / 3 / 2
Регистрация: 26.06.2012
Сообщений: 10
06.04.2014, 23:10 7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string.h>
int main()
{
    using namespace std;
    char n[100];
    cout << "Enter number: ";
    cin >> n;
    int i, k;
    for (i = strlen(n), k = 1; i > 0; i--, k++)
    {
        if (k % 3 != 0)
            cout << n[k-1]; 
        else
            cout << " " << n[k-1];
    }
    return 0;
}
Извиняюсь, если код корявый. Я нуб, просто практикуюсь.

Добавлено через 2 часа 15 минут
Извиняюсь, программа не работает. Приходит в голову только создание второго массива, последовательное присваивание ему цифр и пробелов по одному с первого массива и последующий его разворот. Будет чем заняться завтра на работе)
1
maxr96
0 / 0 / 0
Регистрация: 27.03.2014
Сообщений: 13
06.04.2014, 23:59  [ТС] 8
Буду очень благодарен, если сможете.
0
Dani
1393 / 637 / 134
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
Завершенные тесты: 1
07.04.2014, 00:26 9
Лучший ответ Сообщение было отмечено maxr96 как решение

Решение

Ну вообще можно и так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cstring>
 
void solve(char* str, int pos, int count=0)
{
    if(pos==0)
    {
        std::cout << str[pos];
        return;
    }
    solve(str, pos-1, count+1);
    if(count%3==0)
        std::cout << ' ';
    std::cout << str[pos];
}
 
int main()
{
    char number[100];
    std::cin >> number;
    solve(number, strlen(number));
    return 0;
}
Добавлено через 5 минут
А лучше так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <cstring>
 
int main()
{
    char number[100];
    std::cin >> number;
    int length = strlen(number);
    for(int i=0; i<length; ++i)
    {
        if(i>0 && (length-i)%3==0)
            std::cout.put(' ');
        std::cout.put(number[i]);
    }
}
1
maxr96
0 / 0 / 0
Регистрация: 27.03.2014
Сообщений: 13
07.04.2014, 00:50  [ТС] 10
Я просил через <string.h>.
0
ZaMaZaN4iK
Мой лучший друг-отладчик!
164 / 164 / 30
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
07.04.2014, 05:47 11
MastAKK, Олимпиадная задачка? А на каких же это олимпиадах такие "сложные" задачи дают?
maxr96, а вы разберитесь в отличиях <string.h> от <cstring>=)))
0
MastAKK
145 / 136 / 18
Регистрация: 13.10.2012
Сообщений: 592
08.04.2014, 22:15 12
ZaMaZaN4iK, сложные? Сам лично писал олимпиаду (для старших классов, если что) в прошлом году, решил минут за 20. Ничего сложного тут нету.

Добавлено через 1 минуту
Черт, не уловил сарказм сперва
0
Dani
1393 / 637 / 134
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
Завершенные тесты: 1
08.04.2014, 22:15 13
MastAKK, как ты мог заметить слово сложные было в кавычках :/
0
MastAKK
145 / 136 / 18
Регистрация: 13.10.2012
Сообщений: 592
08.04.2014, 22:16 14
Dani, я уж заметил)

Эта задача там вроде 1 или 2 номер, дальше начинаются задачи уже... Довольно сложные (относительно)
0
08.04.2014, 22:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.04.2014, 22:16

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

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

Получить число М из цифр N1 и N2 в результате операций
Получить число М из цифр N1 и N2 в результате операций: (AD&amp;GE)^HF – байт 1,...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru