Форум программистов, компьютерный форум, киберфорум
Наши страницы

Lua

Войти
Регистрация
Восстановить пароль
 
 
Ярослав Гефест
0 / 0 / 0
Регистрация: 15.03.2015
Сообщений: 6
#1

Пользователь вводит с клавиатуры число, необходимо перевернуть его (число) - Lua

15.03.2015, 17:07. Просмотров 1386. Ответов 16
Метки нет (Все метки)

Написать на Lua(использовать цикл for): Пользователь вводит с клавиатуры число, необходимо перевернуть его (число) и вывести на экран(к примеру 12345). С помощью for что-то не получается.

Вот код:
Код
digit=0
sum=0

print "Vvedite chislo:\n"
digit = tonumber(io.read())

print "Vashe chislo naoborot = "

while (digit>1) do

	sum=digit%10
	digit = digit/10

	print(sum)

end
Но есть проблема: число 54321 выводится не с строку а в СТОЛБИК!!, вот что выдает Lua:
(кто знает как вывести в строку и по возможности с помощью цикла for)
12345
Vashe chislo naoborot =
5
4.5
3.45
2.345
1.2345
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2015, 17:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Пользователь вводит с клавиатуры число, необходимо перевернуть его (число) (Lua):

[Brainfuck] Дано число, необходимо получить в памяти его же + его обратную запись - Программирование
Помогите пожалуйста написать прогу на языке brainfuck: дано число, и необходимо получить в памяти его же + его обратную запись. То есть,...

Пользователь вводит с клавиатуры число, необходимо перевернуть его (число) и вывести на экран. - C++
Сегодняшнее домашнее задание основано именно на этом принципе, однако, вам придется использовать еще и циклы. 1. Пользователь вводит с...

Пользователь вводит с клавиатуры число, необходимо перевернуть его (число) и вывести на экран - C++
2. Пользователь вводит с клавиатуры число, необходимо перевернуть его (число) и вывести на экран.

Пользователь вводит с клавиатуры число, необходимо показать на экран сумму его цифр - C++
3. Пользователь вводит с клавиатуры число, необходимо показать на экран сумму его цифр.

Пользователь вводит с клавиатуры число от 0 до 100, программа выводит число буквами - Pascal ABC
Пользователь вводит с клавиатуры число от 0 до 100, программа выводит число в буквенном формате

Пользователь вводит с клавиатуры две границы диапазона и число. Проверить, попадает ли число в диапазон - C++
Пользователь вводит с клавиатуры две границы диапазона и число. Если число не попадает в диапазон, программа просит пользователя повторно...

16
Ярослав Гефест
0 / 0 / 0
Регистрация: 15.03.2015
Сообщений: 6
17.03.2015, 07:44  [ТС] #16
DrOffset,
Можеш обьяснить что сдесь происходит:

print("Vvedite chislo:\n")
digit = math.abs(tonumber(io.read()))

val = 0
sum = 0
while digit > 0
do
sum = digit % 10
digit = math.modf(digit / 10)
val = val * 10 + sum
end

print("Vashe chislo naoborot:", val)
0
DrOffset
7471 / 4467 / 1015
Регистрация: 30.01.2014
Сообщений: 7,321
17.03.2015, 09:37 #17
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Ярослав Гефест Посмотреть сообщение
Можеш обьяснить что сдесь происходит:
Читаем строку с экрана. Преобразуем ее в число. Берем абсолютное значение этого числа (чтобы правильно работало с отрицательными числами).
Идем по циклу пока digit > 0.
Находим остаток от деления digit на 10 (эта штука получает десятичные разряды с конца: 12345 / 10 = 1234.5, остаток 5).
Берем целую часть от деления digit на 10 (это нужно для проверки условия выхода из цикла).
В результат записываем значение результата на предыдущей итерации, умноженное на 10 (нужно, чтобы сдвинуть разряд на 1 влево), плюс текущий остаток от деления (текущий десятичный разряд с конца).
Например для числа 12345 будет так (по итерациям):
1) sum: 5 (12345 % 10 = 5)
val: 5 (0 * 10; 0 + 5 = 5)
digit: 1234 (12345 / 10 = целая часть - 1234)
2) sum: 4 (1234 % 10 = 4)
val: 54 (5 * 10; 50 + 4 = 54)
digit: 123 (1234 / 10 = целая часть - 123)
3) sum: 3 (123 % 10 = 3)
val: 543 (54 * 10; 540 + 3 = 543)
digit: 12 (123 / 10 = целая часть - 12)
4) sum: 2 (12 % 10 = 2)
val: 5432 (543 * 10; 5430 + 2 = 5432)
digit: 1 (12 / 10 = целая часть - 1)
5) sum: 1 (1 % 10 = 1)
val: 54321 (5432 * 10; 54320 + 1 = 54321)
digit: 0 (1 / 10 = целая часть - 0)
выход из цикла
1
17.03.2015, 09:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2015, 09:37
Привет! Вот еще темы с ответами:

Пользователь вводит число, найти его корень, если число отричательное, объявить о ошибке - Turbo Pascal
Условие: Пользователь вводит число, найти его корень, если число отричательное объявить о ошибке. Текст программы: uses crt; ...

Пользователь вводит с клавиатуры натуральное число меньшее 10000 - C++
Пользователь вводит с клавиатуры натуральное число меньшее 10000. Программа проверяет корректность ввода, при необходимости сообщает об...

Пользователь вводит число с клавиатуры ему выводит знак зодиака - Turbo Pascal
пользователь вводит число с клавиатуры ему выводит знак зодиака

необходимо перевернуть его (число) и вывести на экран. - C++
1. Пользователь вводит с клавиатуры число - программа должна показать сколько в данном числе цифр. Число вводится целиком в одну...


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

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

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