Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2014, 21:44   #1
StoneGod
Пользователь
 
Регистрация: 13.09.2011
Сообщений: 15
По умолчанию Умножение в 4-системе счисления

Здравствуйте. Мне нужно написать программу умножающую два числа в 4-системе счисления. Я написал с перевод в 10 и обратно, но преподаватель сказал не использовать перевод. Как это можно сделать?

вот что я написал
Код:
#include <iostream>
#include "string"
#include "math.h"
#include <sstream>

using namespace std;

int main(int argc, const char * argv[])
{
    string n1,n2;
    cin >> n1 >> n2;
    
    int a = 0, b = 0;
    
    for (int i = 0; i < (int)n1.length(); i++) {
        a = a + (n1[i] - 48) * pow(4, (int)n1.length() - 1 - i);
    }
    
    for (int i = 0; i < (int)n2.length(); i++) {
        b = b + (n2[i] - 48) * pow(4, (int)n2.length() - 1 - i);
    }
    
    cout << a << endl << b << endl;
    
    string n3 = "";
    
    int c = a * b;
    ostringstream ost;
    while (c > 3) {
        ost << c % 4;
        c = c / 4;
    }
    ost << c % 4;
    n3 = n3 + ost.str();
    reverse(n3.begin(), n3.end());
    cout << n3;
    
    
    
    return 0;
}
StoneGod вне форума Ответить с цитированием
Старый 11.10.2014, 12:52   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Похоже он хочет от тебя умножение столбиком. Как в первом классе показывают. Только перенос не десятичный делать а четверичный.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.10.2014, 15:35   #3
BoozZzilla
Форумчанин
 
Аватар для BoozZzilla
 
Регистрация: 26.01.2009
Сообщений: 125
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Похоже он хочет от тебя умножение столбиком. Как в первом классе показывают. Только перенос не десятичный делать а четверичный.
Я бы реализовал это парой функций:
1) - умножение в четверичной системе одного знака на один знак, таблица умножения в четверичной системе.
2) - сложение в четверичной системе.
И на основе этих двух функций уже можно сделать умножение больших чисел, именно столбиком.
BoozZzilla вне форума Ответить с цитированием
Старый 11.10.2014, 15:56   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
Я написал с перевод в 10 и обратно, но преподаватель сказал не использовать перевод.
Нельзя перевод вообще или нельзя перевод в десятичную?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает преобразование кода из одной системы счисления в ID в другой системе счисления Ultran PHP 1 09.11.2013 21:15
В римской системе счисления Maxloki Паскаль, Turbo Pascal, PascalABC.NET 5 23.07.2013 20:47
умножение в двоичной системе phasha Помощь студентам 2 26.02.2012 15:44
Уравнение в шестнадцатиричной системе счисления catchmeifyoucan Паскаль, Turbo Pascal, PascalABC.NET 1 17.01.2012 10:09
Умножение двух чисел в p-ичной системе счисления - turbo pascal oxygen2007rus Помощь студентам 1 13.12.2009 16:00