Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Массив: Найти строку, которая при записи ее элеме 
:(
    Опции темы
TepH
Дата 24.4.2012, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 24.10.2010

Репутация: нет
Всего: нет



Задание:
 
Цитата

Размерность 4х4. Найти строку, которая при записи ее элементов сплошными цифрами дает максимальное число. (Пример: строка из четырех элементов 12, 6, 7, 48 при сплошной записи дает число 126748). 


 Не совсем понимаю, как делать. Предположительно, берётся строка, в ней элемент, надо найти количество цифр в элементе, куда-то его сохранить, потом взять следующий элемент, посчитать количество цифр, сохранённый элемент умножить на 10^(количество чисел 2го элемента) и прибавить сюда второй элемент и т.д.

 Чтобы найти количество цифр я предполагаю элемент делить на 10, брать остаток от деления и т.д., чтобы перевернуть число (видимо, каждый раз надо на 0 проверять значение того места, где хранится число, над которым производятся действия). Перевернув всё число я узнаю количество цифр элемента матрицы, после чего опять начну делить это число на 10 и остаток прибавлять в итоговое место хранения, умножая число в этом место на 10.
 Первый элемент заносится сразу в место хранения.
 Так я сделаю строку сплошной.

 Правильно ли я мыслю? И если да, как можно такое реализовать, ведь получается, для умножения и деления данные постоянно надо переправлять в AX и код получится совсем громоздким...


Или, м.б. надо считать, чтобы все числа были с одинаковым количеством разрядов и из этого как-то исходить?
Но тогда пример в задании не верен.

Это сообщение отредактировал(а) TepH - 24.4.2012, 09:05
PM MAIL   Вверх
iff
Дата 24.4.2012, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


Профиль
Группа: Участник
Сообщений: 949
Регистрация: 23.3.2007

Репутация: 4
Всего: 16



Цитата(TepH @  24.4.2012,  09:03 Найти цитируемый пост)
Не совсем понимаю, как делать. Предположительно, берётся строка, в ней элемент, надо найти количество цифр в элементе, куда-то его сохранить, потом взять следующий элемент, посчитать количество цифр, сохранённый элемент умножить на 10^(количество чисел 2го элемента) и прибавить сюда второй элемент и т.д.

В этом случае алгоритм такой:
Код

arr[0..3, 0..3] - массив натуральных чисел (размерность каждого элемента предположительно - байт)
imax, max, t, n - натуральные числа (предположительно размерностью 4 байта)
m - натуральное число (размерность предположительно 2 байта)
i, j - натуральные числа (размерность - байт)

цикл для i от 0 до 3
 t = 0
 n = 1
 цикл для j от 3 до 0
  t = t + arr[i, j] * n
  m = 10
  цикл до того как arr[i, j] < m
   m = m * 10
  конец цикла
  n = n * m
 конец цикла
 если t > max то
  max = t
  imax = i
 конец если
конец цикла



Это сообщение отредактировал(а) iff - 24.4.2012, 11:48


--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0400 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.