Переворот числа
Просмотров 14.8к. Обновлено 26 сентября 2021
Сформировать из введенного числа обратное по порядку входящих в него цифр и вывести на экран. Например, если введено число 3486, то надо вывести число 6843.
Если постепенно извлекать из первого числа последние цифры (и удалять их после этого из числа) и постепенно «дописывать» их в конец второго, то в итоге мы получим перевернутое первое число.
- Для извлечения последней цифры числа надо найти остаток от деления его на 10.
- Чтобы добавить цифру в конец числа, надо умножить число на 10 (сдвинуть разряды) и затем прибавить цифру-число (количество единиц).
Pascal
Язык Си
Python
КуМир
Basic-256
Формулировка задачи:
Здравствуйте, я, так сказать, новичок в программировании, но не суть, нужна ваша помощь
Суть задачи такова:
Для данного натурального числа найти обратное к нему и вычислить их сумму.
Например: для числа 1879 обратное 9781, а их сумма равна 11660.
Формат входных данных:
Входной файл INPUT.TXT содержит одно натуральное число N (1N10100).
Формат выходных данных:
Выходной файл OUTPUT.TXT должен содержать найденную сумму.
Написал программу, но не могу сделать сумму этих чисел (вывести обратное получилось), ниже код.
var n,m:longint; begin writeln('введите целое число:'); readln(n); M:=0; while n>0 do begin m:=m*10+(n mod 10); N:=N div 10; end; writeln('полученное число:',M); readln end.
Как найти сумму двух чисел, уже и туда, и туда вставлял, вообще не понимаю)Помогите!)
Код к задаче: «Для данного натурального числа найти обратное к нему и вычислить их сумму»
textual
var n, m: String[101]; i, c, d: Integer; begin Assign(input,'input.txt'); Assign(output,'output.txt'); Reset(input); Rewrite(output); ReadLn(n); m:=n; c:=0; for i:=Length(n) downto 1 do begin d:=Ord(n[i])+Ord(n[Length(n)-i+1])-2*Ord('0')+c; c:=d div 10; d:=d mod 10; m[i]:=Chr(d+Ord('0')); end; if c>0 then m:='1'+m; WriteLn(m); end.
Полезно ли:
7 голосов , оценка 4.143 из 5
2 / 2 / 0 Регистрация: 23.01.2014 Сообщений: 272 |
|
1 |
|
Вывести число, противоположное заданному26.01.2014, 15:45. Показов 12062. Ответов 11
Вывести число, противоположное заданному. Выходные данные: Пример входного файла (input.txt):
0 |
grikukan 66 / 66 / 54 Регистрация: 23.09.2012 Сообщений: 212 |
||||
26.01.2014, 16:23 |
2 |
|||
0 |
2 / 2 / 0 Регистрация: 23.01.2014 Сообщений: 272 |
|||||
26.01.2014, 16:32 [ТС] |
3 |
||||
Ограничения [Время: 1000ms, Память: 128MB, Сложность: 1%] Вывести число, противоположное заданному. Выходные данные: Пример входного файла (input.txt):
0 |
KOPOJI Почетный модератор 16842 / 6720 / 880 Регистрация: 12.06.2012 Сообщений: 19,967 |
||||
26.01.2014, 16:37 |
4 |
|||
На файлы сами переделайте
1 |
2 / 2 / 0 Регистрация: 23.01.2014 Сообщений: 272 |
|
26.01.2014, 16:45 [ТС] |
5 |
Получение файла:
0 |
Почетный модератор 16842 / 6720 / 880 Регистрация: 12.06.2012 Сообщений: 19,967 |
|
26.01.2014, 16:46 |
6 |
замените последнее “;” на точку
0 |
2 / 2 / 0 Регистрация: 23.01.2014 Сообщений: 272 |
|
26.01.2014, 16:50 [ТС] |
7 |
Получение файла:
0 |
66 / 66 / 54 Регистрация: 23.09.2012 Сообщений: 212 |
|
26.01.2014, 17:22 |
8 |
Ну а что Вам не нравится?
0 |
2 / 2 / 0 Регистрация: 23.01.2014 Сообщений: 272 |
|
26.01.2014, 17:25 [ТС] |
9 |
там гднто ошыбка
0 |
66 / 66 / 54 Регистрация: 23.09.2012 Сообщений: 212 |
|
26.01.2014, 17:26 |
10 |
Стоп.Так вы вводите с клавиатуры или с файла?
0 |
2 / 2 / 0 Регистрация: 23.01.2014 Сообщений: 272 |
|
26.01.2014, 17:30 [ТС] |
11 |
с клавиатуры
0 |
volvo Супер-модератор 32548 / 21023 / 8127 Регистрация: 22.10.2011 Сообщений: 36,295 Записей в блоге: 7 |
||||
26.01.2014, 18:38 |
12 |
|||
Сообщение было отмечено некит434 как решение Решение
там гднто ошыбка Ошибка и замечание – это очень разные вещи.
1 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
26.01.2014, 18:38 |
Помогаю со студенческими работами здесь Число,противоположное данному Вывести число, обратное заданному Числа Фибоначчи: вывести число по заданному n Дано три числа, если сумма их положительная, изменить второе число на противоположное Код… Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 12 |
У меня проблемы с программой на паскале.
Мне нужно ввести число, а затем мне нужно, чтобы программа написала сложение обратного значения этого числа. Это должно быть примерно так: допустим, число 5 (n = 5), тогда мне нужно, чтобы моя программа записывала 1/1 + 1/2 + 1/3 + 1/4 + 1/5
, и в результате этого добавления мне нужно использовать for,to,do
, чтобы получить решение, так что если бы кто-то мог мне помочь, я был бы очень благодарен. Я пробовал что-то вроде этого:
program reciprocaladdition;
var x : integer:
begin
writeln('enter number');
readln(x);
for x:=1 to x do writeln(1/x:0:2)
readln
end.
Но это не дает мне того, что мне нужно, так что если кто-то может мне помочь, я буду благодарен.
1 ответ
Лучший ответ
У вас есть пара опечаток:
Двоеточие после integer
должно быть точкой с запятой; а также
Writeln нуждается в точке с запятой после него, потому что после него стоит другой оператор (readln).
Кроме того, он компилируется и отлично работает в Lazarus + FPC. В исправленной версии ниже я добавил код для вычисления и отображения суммы промежуточных значений.
program reciprocals;
var
x : integer;
Sum : Double; // a floating-point datatype
begin
writeln('enter number');
readln(x);
Sum := 0;
for x:=1 to x do begin
writeln(1/x:0:2);
Sum := Sum + 1/x;
end;
writeln('Sum: ', Sum:0:2);
readln
end.
Это производит вывод
enter number
3
1.00
0.50
0.33
Sum: 1.83
Делает ли это то, что вы хотите? Если нет, скажите, почему.
1
MartynA
10 Ноя 2019 в 18:08
Условие задачи: Написать программу, которая будет выводить запись числа в обратном порядке. Число вводит пользователь.
Сложность: легкая.
Естественно сначала стоит сказать как мы будем решать эту задачу. Мы воспользуемся операциями mod и div.
Информация div — находит целую часть от деления
mod — находит остаток от деления
Сразу примерчик. Допустим у нас есть число 234. Занесем его в переменную например number. Теперь применим к нему операцию mod чтобы оторвать от него последнюю цифру и эту цифру тоже занесем в переменную.
Выглядеть это будет так :
number :=
234
;
i := number
mod
10
;
{теперь в переменной i будет число 4}
Из этой переменной i мы и будем составлять наше число.
Создадим переменную для нашего перевернутого числа , пусть она называется conv , сокращенно от conversely что в переводе с англ. наоборот.
Смотрите что я сейчас сделаю :
conv :=
0
;
number :=
234
;
i := number
mod
10
;
conv := conv*
10
+ i ;
И что у нас получиться, если мы подставим 3? Переменная conv у нас и будет равняться 3. Еще осталось два числа. Нам нужно из переменной number убрать лишнее число, т.е. последнее, т.к. нам уже нужна следующая цифра.
Тут нам поможет операция div. Пишем :
number := number
div
10
;
{теперь тут будет число 23}
Вот код который у нас на данный момент :
number :=
234
;
i := number
mod
10
;
{теперь в переменной i будет число 4}
conv := conv*
10
+ i ;
number := number
div
10
;
Теперь нужно добавить цикл, чтобы эти операции выполнялись несколько раз, но сколько ? Они у нас будет выполняться пока наше число number будет иметь какие-то цифры, т.е. будет больше нуля.
Пишем :
number :=
234
;
while
(number >
0
)
do
begin
i := number
mod
10
;
conv := conv*
10
+ i ;
number := number
div
10
;
end
;
Вот как-то так , теперь если мы проделаем туже операцию несколько раз то у нас запишется число в обратном порядке.
Если не поняли, то возьмите бумажку напишите число и просто проделайте эту операцию, тогда точно всё поймёте.
Весь код программы :
uses
crt;
var
number, conv, i :
integer
;
begin
write
(
'Введите число : '
); readln(number);
conv :=
0
;
while
(number >
0
)
do
begin
i := number
mod
10
;
conv := conv*
10
+ i ;
number := number
div
10
;
end
;
writeln
(
'Обратная запись числа: '
, conv);
readln;
end
.
Предыдущая
ПрограммированиеЗадачи по Pascal. Степень числа 3.
Следующая
ПрограммированиеЗадачи по Pascal. Первая цифра числа.