Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
1 / 1 / 0
Регистрация: 17.02.2009
Сообщений: 13

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

07.03.2009, 18:55. Показов 2481. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые господа! Пожалуйста помогите решить задачу, не уходите посмотрев, что задача легкая, и не дав ответа, я очень прошу...
Вот собственно задача:
Нужно решить через рекурсию, условие уже написано в заголовке этой темы
Итак, Примерно как это можно сделать..
Сначала забиваем const n, n - число цифр, например 123456789, здесь const n=9,
потом делим число на "div 10^(n-1)", первую цифру забиваем в массив, и так далее, потом получившееся число в массиве, например 12345, т.к. writeln выдает только одну цифру, то 12345 "mod 10" чтобы вывести одну цифру, вобщем примерно так... можете написать пожалуйста? и распишите еще немного, примерно правильно? Кто нибудь помогите...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.03.2009, 18:55
Ответы с готовыми решениями:

Вывести только те слова сообщения, которые содержат хотя бы одну цифру
помогите найти ошибку //не выводит слово П3редло9жение String str = "П3редло9жение со см6ыслом, знаками. Содержащее циф1ры!";...

Вывести только те слова сообщения, которые содержат хотя бы одну цифру
Дана строка, в которой содержится осмысленное текстовое сообщение. Слова сообщения разделяются пробелами и знаками препинания. Вывести...

Вывести только те слова сообщения, которые содержат хотя бы одну цифру
При решении задач следует руководствоваться правилом: если в строке должны производится изменения, то лучше пользоваться классом...

11
 Аватар для Vladiator
1574 / 645 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
07.03.2009, 19:05
А я не понял, цифры выводить слева направо или справа налево. И решать обязательно через рекурсию?
1
 Аватар для Викдон
67 / 67 / 24
Регистрация: 21.11.2008
Сообщений: 226
07.03.2009, 19:32
Вот разве что без реккурсии:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Const N=5;
var Mas:array[1..N] of longint;
    c:longint;
    i,b:integer;
 
 
 
begin
 
write('Input chislo:');
readln(c);
i:=0;
 while c<>0 do
  begin
   inc(i);
   Mas[i]:=c mod 10;
   c:=c div 10;
  end;
 
  for b:=i downto 1 do
   write(Mas[b]);
 
readln;
end.
1
 Аватар для Vladiator
1574 / 645 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
07.03.2009, 19:38
без рекурсии.
если слева направо, то вот:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
program xxx;
var
 n,i:longint;
 es:string;
begin
 writeln('Введите число');
 readln(n);
 str(n,es);
 for i:=1 to length(es) do
  writeln(es[i]);
 readln;
end.
Если наоборот, то вот:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
program xxx;
var
 n,i:longint;
 es:string;
begin
 writeln('Введите число');
 readln(n);
 str(n,es);
 for i:=length(es) downto 1 do
  writeln(es[i]);
 readln;
end.
1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.03.2009, 19:55
А можно просто точное условие задачи без лирики и ненужных умозаключений и наводок. Если бы Вы могли рассказать как делать, то наверное сами бы сделали.

Добавлено через 11 минут 8 секунд
Если просто перевернуть число с рекурсией, то это так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
uses crt;
procedure reverse (n:longint);
begin
  write (n mod 10);
  if (n div 10) < > 0 then reverse (n div 10)
end;
var n:longint;
begin
clrscr;
write('n=');readln(n);
reverse(n);
readln
end.
1
1 / 1 / 0
Регистрация: 17.02.2009
Сообщений: 13
08.03.2009, 13:59  [ТС]
Всем спасибо огромное за помощь! Всем нажал на "спасибо")
Разворачивать не нужно, вот задание:
-Ввводится число integer. нужно вывести его на экран с помощью рекурсии, но можно выводить лишь по одной цифре за раз.

Добавлено через 2 минуты 30 секунд
Вот еще...
1) Вывести двоичную(3-чную,.. 9-ную) запись целого числа опять же с помощью рекурсии.
2) Сосчитать сумму первых n элементов массива с помощью рекурсии(рекурсия по числу элементов)
3) Ханойские башни. есть 3 стержня. на одном из них лежат n колец, причем внизу большие, кверху кольца уменьшаются(получается такая пирамида). Задача в том, чтобы перенести все кольца с одного стержня на другой(естесственно используя 3й стержень), причем не разрешается класть большее кольцо на меньшее(то есть можно только меньшее на большее). Программа должна с помощью рекурсии выводить последовательность действий(ходов. к примеру 1->3, 2->3,1->2...).
1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
08.03.2009, 14:25
Не знаю точно что Вы имеете ввиду вывод по одной цифре, сделал столбиком.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
uses crt;
procedure PrintCif(ch:longint); {n>0}
begin
  if ch<10 then
  writeln(ch)
  else
  begin
    PrintCif(ch div 10);
    writeln(ch mod 10);
  end;
end;
var n:longint;
begin
clrscr;
write('n='); readln(n);
PrintCif(n);
readln
end.
Добавлено через 1 минуту 47 секунд
Ханойская башня есть почти на всех сайтах по Паскалю, рекурсии, Делфи и т.д. Если хорошо поискать, то наверное и на этом сайте уже была.
1
1 / 1 / 0
Регистрация: 17.02.2009
Сообщений: 13
08.03.2009, 18:53  [ТС]
to Puporev про ханойские башни здесь посмеялись)) Ханойские башни, вывод решения по шагам попробую поискать...
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
08.03.2009, 19:00
попробую поискать.
Ну если не найдете, скину Вам программу, правда чужая, поэтому и не очень хочется.
0
1 / 1 / 0
Регистрация: 17.02.2009
Сообщений: 13
08.03.2009, 20:33  [ТС]
)))

Добавлено через 1 час 22 минуты 58 секунд
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Program Hanoi3;
var N:byte;
Procedure Hanoi(first, second, third, N:byte);
 Begin
 if N=1 then
 writeln(first,'-->',third,';')
 else
  begin
  Hanoi(first, third, second, N-1);
  Hanoi(first, second, third, 1);
  Hanoi(second, first, third, N-1);
  end;
 end;
begin
writeln('vvedite N=');
readln(N);
if N>0 then
Hanoi(1,2,3,N);
end.
Подкорректируйте что не правильно пожалуйста!
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
08.03.2009, 20:36
Ну я же в другой теме выложил программу.Эта неправильная.
0
1 / 1 / 0
Регистрация: 17.02.2009
Сообщений: 13
08.03.2009, 20:57  [ТС]
Да я уже заметил, спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.03.2009, 20:57
Помогаю со студенческими работами здесь

В длинном числе изменить только одну цифру так, чтобы новое число делилось на 9
Задано натуральное число, содержащее не более 200 цифр. В этом числе требуется изменить только одну цифру так, чтобы новое число делилось...

Узнать что число заканчивается и начинается на одну и туже цифру
Дано трёхзначное число,узнать что оно заканчивается и начинается на одну и туже цифру(например 353)

Вывести только те слова заданного текстового сообщения, которые содержат хотя бы одну цифру
Дана строка, в которой содержится осмысленное текстовое сообщение. Слова сообщения разделяются пробелами и знаками препинания. Вывести...

При выборе значения в ComboBox выводить только одну выбранную строку в DataGridView
Нужно при выборе значения в combobox выводило только одну выбранную строчу в datagridview. Думал может через запрос. private void...

Верно ли, что текст содержит только одну цифру, причем ее числовое значение равно длине текста
Текст задан последовательностью литер, за которыми идет '.' . Написать программу, которая определяет выполнено ли следующее условие: ...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru