0 / 0 / 0
Регистрация: 15.11.2011
Сообщений: 44
|
|
1 | |
Дано натуральное число. Получить строковое представление этого числа13.02.2012, 23:12. Показов 5241. Ответов 22
Метки нет (Все метки)
Дано натуральное число. Получить строковое представление этого числа в виде последовательности цифр и пробелов, разделяющих группы по три цифры, начиная справа. Например, если исходное число равно 1753967, то результирующей должна быть строка 1 753 967.
PS: Вопорос в том что если делать строку нужно двигать элементы, а как это сделать не имею понятия
0
|
13.02.2012, 23:12 | |
Ответы с готовыми решениями:
22
Дано натуральное число N получить все делители этого числа. Дано натуральное число. Определить минимальную цифру этого числа Дано натуральное число n. Переставить местами первую и последнюю цифры этого числа Дано натуральное число n. Найти сумму первой и последней цифры этого числа |
1779 / 757 / 153
Регистрация: 03.06.2009
Сообщений: 5,927
|
|
14.02.2012, 10:26 | 2 |
Ничего двигать не нужно. Можно либо использовать промежуточную строку либо стек.
Число делить на 10 пока оно больше 0, при каждом делении остаток записывать в строку или стек. Когда деления закончатся, брать из строки в обратном порядке и цифры или извлекать из стека, не забывая после каждой 3-й цифры добавлять пробел.
0
|
Заблокирован
|
||||||
14.02.2012, 18:57 | 3 | |||||
Enter number : 1753967 Split number : 1 753 967 Enter number :
1
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
||||||
14.02.2012, 19:48 | 4 | |||||
Не по теме: -=ЮрА=-, отрицательные числа забавно выводятся...
2
|
|
14.02.2012, 20:16
#5
|
Не по теме: - я за отрицательные изначально знал, что будет кака, просто не захотел усложнять жизнь ТС нагружая код либо abs-ом, либо флагом для минуса, но спасибо за замечание!;) PS:Я вообще сначала через sprintf пошёл, но вышла такая громадина из кода, что отмёл этот вариант...
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
||||||
15.02.2012, 00:36 | 6 | |||||
такая
1
|
|
15.02.2012, 10:08
#7
|
0
|
Заблокирован
|
||||||
15.02.2012, 10:42 | 8 | |||||
Вот С-шный вариант разбиения с помощью sprintf
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
|
15.02.2012, 11:47 | 9 |
-=ЮрА=-, число 1001001 выведется, как 1 1 1, что как-то не правильно. А так ничё, компактненько...
1
|
4165 / 1817 / 216
Регистрация: 06.10.2010
Сообщений: 4,074
|
||||||
15.02.2012, 14:07 | 10 | |||||
Рекурсия
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
||||||
15.02.2012, 16:24 | 11 | |||||
Мысль хорошая, вот реализация не очень - во-первых одноразовая, во-вторых ещё ноль в конце строки приделывать нужно. Просто вывод я бы так например сделал:
1
|
Заблокирован
|
||||||
15.02.2012, 22:06 | 12 | |||||
1
|
|
15.02.2012, 22:14
#13
|
Не по теме: PS:easybudda, всё таки думаю вариант со строкой предпочтительней - у нас как бы есть преобразованные данные на выходе, с которыми можно оперировать как угодно, а вот если мы их пропечатали в консоли то без STD_OUTPUT_HANDLE их вообще вряд ли можно достать...
0
|
0 / 0 / 0
Регистрация: 15.11.2011
Сообщений: 44
|
|
15.02.2012, 23:04 [ТС] | 14 |
Тут не правильно вычесляет , ведь надо начинать справа а не слева... например при вводе 1234 выводит 123 4
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
|||||||||||
15.02.2012, 23:24 | 15 | ||||||||||
-=ЮрА=-, вместо одного нуля три выведет. Ну и дальше в том же духе - 001 001 etc... А по поводу сохранения в строке - а надо оно? Число всё равно числом и хранится, а в таком виде оно - или на экран вывести, или в файл...
Добавлено через 4 минуты
1
|
|
15.02.2012, 23:57
#16
|
Не по теме: - тебе уже приведено 4-ри рабочих варианта С++ 1 Дано натуральное число. Получить строковое представление этого числа С++ 2 Дано натуральное число. Получить строковое представление этого числа С 3 Дано натуральное число. Получить строковое представление этого числа С 4 Дано натуральное число. Получить строковое представление этого числа Ну наверное же у меня и у easybudda, не тараканы в голове лазают, наверное же понимаем почему нельзя сделать как murderer, и наверное же для тебя писали!Если не хватает сил осилить наши коды, так возьми книжку почитай и пойми что к чему, а не занемайся ерундой...Иногда то что кажется трудным и есть правильно!
1
|
0 / 0 / 0
Регистрация: 15.11.2011
Сообщений: 44
|
|
16.02.2012, 00:02 [ТС] | 17 |
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
16.02.2012, 08:11 | 18 | |||||
Непереносимый вариант:
╙─[%> ./sample 59999999 59999999: 59 999 999 ╓─[nameless@desktop]┅┅(~/samples/c) ╙─[%>
1
|
Заблокирован
|
||||||
16.02.2012, 10:22 | 19 | |||||
Ну тогда уж и вариант с рекурсией
Enter number : 115474847 Split number : 115 474 847 Enter number : PS:Долго алгоритм не тестил...
1
|
0 / 0 / 0
Регистрация: 15.11.2011
Сообщений: 44
|
||||||
08.03.2012, 15:50 [ТС] | 20 | |||||
{ printf("%c", str2[i]); }; почему то тут выдает 2 лишних символа, можете объяснить в чем дело?
0
|
08.03.2012, 15:50 | |
08.03.2012, 15:50 | |
Помогаю со студенческими работами здесь
20
Дано натуральное число л. Найти сумму первой и последней цифры этого числа Дано натуральное число л. Переставить местами первую и последнюю цифры этого числа Дано натуральное число n. Верно ли, что сумма цифр этого числа является чётной Получить двоичное строковое представление целого неотрицательного числа Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |