|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.02.2012, 10:39 | #1 |
Регистрация: 23.01.2012
Сообщений: 5
|
Умножить два числа столбиком в C++
Привет
задача - написать программу умножения 2-х чисел от 0 до 999 в столбик. Например умножение чисел 433 и 456 выглядеть примерно так: 456 x 433 --------- 1368 1368 1824 --------- 197448 Вот. Препод дал кое-какие наводки, но дальше их я никак вот собственно что есть #include <iostream> using namespace std; Код:
Последний раз редактировалось ACE Valery; 15.02.2012 в 14:40. |
12.02.2012, 14:47 | #2 |
Форумчанин
Регистрация: 15.03.2011
Сообщений: 272
|
могу предположить, что далее вам дадут задание на длинную арифметику(числа, для которых не достаточно стандартных типов).
Так что лучше использовать массивы. Для начала, для чисел от 0-9 для каждого разряда, а потом(для экономии памяти) хранить уже до 999. Логика такова: чем больше смещение элемента(индекс) тем больше его разряд. Т.е. представим число 123: ar[0] = 3; ar[1] = 2; ar[2] = 1; Соответственно, каждый i-ый элемент массива равен: ar[i] * ( 10^i ) (10 в i-ой степени). Сложение выполняется просто: начиная с нулевого складываем поразрядно. если результат больше 10, то вычитаем 10 и переносим в следующий разряд. допустим: a[0] = 0; b[0] = 5; a[1] = 5; b[1] = 9; a[2] = 1; b[2] = 6; после сложения поразрядно у нас получается: c[0] = 5; c[1] = 14 - 10; c[2] = 7 + 1; PS модераторы, удалите нижний пост, пж PSS прошу прощения Последний раз редактировалось Sna1L; 12.02.2012 в 14:54. |
13.02.2012, 01:24 | #3 |
Регистрация: 23.01.2012
Сообщений: 5
|
Спасибо, Sna1L;
Т.к. занятий было всего 4, то до масивов пока еще не добрались. Нужно решить проблему с выравниванием цифр в столбик. На самом деле, я здесь накорябал кое-чего, но т.к. в этом деле ламер - то просто чувствую, что накорябал через одно место, хотя прога почти работает. Внимание вопрос: Как упростить прогу - я имею в виду сам алгоритм словежения в столбик, и как все-таки избавиться от этих ненужных нулей, которые при счете в столбик на бумаге - не писались бы Заранее всем спасибо. Вот сий шедевр Код:
Последний раз редактировалось ACE Valery; 15.02.2012 в 14:41. |
13.02.2012, 09:11 | #4 |
Форумчанин
Регистрация: 15.03.2011
Сообщений: 272
|
Извиняюсь за первый пост. Думал что складывать надо
Насчет нулей: можно заполнять пробелами. Т.е. вводим 2 числа. Производим операции и выводим. Примерно будет выглядеть так: Введите первое число: <ввод> Введите второе число: <ввод> (3пробела)число1 (3пробела)число2 ---------------------------- (3пробела)шаг1 (2пробела)шаг2 (1пробела)шаг3 ну, алгоритм думаю сами придумаете PS извиняюсь за страшное оформление PSS оформляйте код правильно: пишите CODE в квадратных скобках или нажмите на значок решетки. Последний раз редактировалось Sna1L; 13.02.2012 в 09:16. |
15.02.2012, 13:14 | #5 |
Пользователь
Регистрация: 12.01.2012
Сообщений: 17
|
Вот реализация только на delphi
Код:
Если хотите отблагодарить меня - R526322326168
Единственное, что ограничивает полет мысли программиста-компилятор |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Турбо ассемблер - построить массив путём сдвига исходного массива и умножить все элементы полученного массива на два | Александр16 | Помощь студентам | 5 | 12.02.2012 20:30 |
заданные числа умножить на -5, 10. | Flaik | Помощь студентам | 8 | 28.11.2011 15:20 |
курсовой проект-умножить два целых числа произвольной длины, представленных однонаправленными связаными списками | некрон | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 09.06.2011 23:04 |
Умножить и разделить числа | Pavelok | Общие вопросы Delphi | 5 | 19.05.2009 21:04 |