Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > div mod


Автор: Darkmaster 6.2.2006, 20:34
Задача по div и mod. У меня ступор.. точнее я решил ее с определенными числами но нужно универсальное решение для всех чисел как переменных. Вот задача:
Из трехзначного числа x вычли его последнюю цифру. Когда результат разделили на 10 , а к частному слева приписали последнюю цифру числа x то получилось число N. Найти число N. По заданному N найти число x (значение N вводится с клавиатуры, 10<=N<=999), и при этом число десятков в N не равно нулю. Помогите с решением!

Автор: Snowy 6.2.2006, 21:33
Для 10-999:
Код

  N := (x div 10);
  if x >= 100 then N := x mod 10 * 100
  else N := x mod 10 * 10;



Для трехзначных:
Код

  N := (x div 10) + (x mod 10 * 100);

Добавлено @ 21:37
И наоборот:
Код

  x := (N mod 100 * 10) + (N div 100); 

Автор: Rencom 7.2.2006, 02:06
Snowy, ты неправильно число N нашел.

Цитата
Из трехзначного числа x вычли его последнюю цифру



Где ты вычитаешь последнюю цифру из числа??)

Автор: Snowy 7.2.2006, 09:56
Цитата(Rencom @ 7.2.2006, 02:06 Найти цитируемый пост)
Где ты вычитаешь последнюю цифру из числа??)

А покажи мне разницу между:
Код

  N := x div 10;
  { и }
  N := (x - x mod 10) div 10;
?
Результат один и тот же.
Если не устраивает, можно применить вторую запись. Но результат от этого не изменится.

Автор: Rencom 8.2.2006, 00:32
да, ты прав, беру свои слова обратно, извини smile

Автор: karataev 9.2.2006, 16:33
Код

 N := (x div 10);    
  if x >= 100 then N := x mod 10 * 100    
  else N := x mod 10 * 10;


Snoowy, ты наверное хотел написать что это для 10-99, а не 10-999, потому что дальше даешь код для трехзначных...

Автор: Snowy 9.2.2006, 16:41
Нет, я все правильно написал.
А код для трехзначных даю потому, что по сути это то же самое, но только для трехзначных.
Т.е. второй код делает то же, что и первый, кроме того, что не работает с 10-99, а только 100-999.
Первый код работает для любых 10-999.

Автор: karataev 9.2.2006, 16:47
Цитата(Snowy @ 9.2.2006, 16:41)
Второй код делает то же, что и первый, кроме того, что не работает с 10-99, а только 100-999.
Первый код работает для любых 10-999.

Понял smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)