Форум программистов, компьютерный форум CyberForum.ru

Умножение двух чисел в столбик - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Снятие чисел с каждой строки, вычитание и запись http://www.cyberforum.ru/cpp-beginners/thread827490.html
Есть файл, где все строки имеют такую структуру <object id="object (las2_lodbrigtower) (1)" interior="0" collisions="true" alpha="255" doublesided="true" model="5300" scale="1" dimension="0" background="" border="" foreground="" framesFaded="0" framesToFade="0" height="15" posX="111.75879" posY="4287.19629" posZ="1.77715" rotX="0" rotY="0" rotZ="0" state="hidden" text="Alpha Level"...
C++ Дополнительно перегрузить логическую операторную функцию для операции | (побитовая дизъюнкция), определяющую параллельность двух отрезков Собственно все задание Разработать класс Line для работы с объектами типа отрезок. Члены-данные этого класса определяют координаты концов отрезка на плоскости. Класс должен содержать основной конструктор и конструктор копирования. Перегрузить в этом классе операторные функции, которые обеспечивают ввод/вывод элементов класса. Дополнительно перегрузить логическую операторную функцию для... http://www.cyberforum.ru/cpp-beginners/thread827458.html
strtok только для слов C++
Посоветуйте функцию похожую на strtok(), только что работает и со словами. Например: Есть strtok, работает так char str = "ABCD$EFG"; char* primer = strtok(str,"$"); char* other = strtok(0, ""); TB->Text = CharToSystemString(primer); а хотелось бы функцию которая делает что то вроде этого char str = "Привет, как дела нормально бла бла бла";
C++ почему не перехватывается исключение типа double
#include <iostream> #include <conio.h> #include <cstring> using namespace std; void obrob(int a) { try { if(a!=3)
C++ Friend function and Overload <<(>>) http://www.cyberforum.ru/cpp-beginners/thread827427.html
#include <iostream> using namespace std; class array{ private: unsigned int size; int *mas; public: array(unsigned int sizestart=20000);
C++ Заполнение Единичной матрицы int n = 0; cout <<"Введите размер массива"; cin >> n; int **a = new int* ; for (int i = 0; i < n; i++) { a = new int ; } for (int i = 0; i < n; i++) подробнее

Показать сообщение отдельно
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
04.04.2013, 14:41     Умножение двух чисел в столбик
Я недавно делал это вручную перемножал когда класс создавал для громадных int там умножение вручную есть в функции перегрузка operetor*(); Примеров как именно перемножать я нигде не видел.
отут в функции operator*() в классе я перемножал в столбик. http://www.kselax.ru/2013/03/klass-lint/ но ты фиг там поймешь, а объяснять либо самому тебе перемножить мне лень. Проще тебе самому пару раз умножить и написать по алгоритму программу.

Добавлено через 8 минут
Вообще пару раз умнож число вручную и уже пиши по алгоритму это будет лучший вариан.
Что тебе нужно для начала? Правильно определить какое число больше.
Потом что еще? Да нужно взять последнюю цифру меньшего числа. Ну делай бери ее выдели как небуть с массива.
Потом что? Перемножать разряды с проверкой. ты взял перемножи у тебя получилось число. проверь его больше оно или равно десяти. Если число больше или равно десяти, то раздели его на десять ты получишь число которое нужно будет прибавить при следующем умножении, либо если умножения не будет дописать к множителю в первые разряды добавить так сказать, и взять конечно остаток от деления чтобы снести сам разряд вниз.
Просто так фиг ты что разберешь.
Мой совет вручную перемно а затем уже выдели алгоритм и по нему пиши. exit(1); используй для пошаговой проверки что ты получаешь, на каждом шаге выполнения программы.

Добавлено через 26 минут
Я начало тебе уже сделал. Отак должно быть сначала. Ты просто перемножь и суму сложи с проверкой условия.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
using std::cout;
using std::endl;
#include <cstdlib>
using std::exit;
 
int main()
{
    int chislo1[20]={0};
    int chislo2[20]={0};
    int a=340;
    int b=25;
    int r1;//razr9d pervui
    int r2;//razr9d vtoroi
    //zapicuvaem pervoe chiclo
    for(int i=0;a!=0;i++)
    {
        int d=a%10;
        a/=10;
        chislo1[i]=d;
    }
    //zapicuvaem vtoroe chiclo vo vtoroi massiv
    for(int i=0;b!=0;i++)
    {
        int d=b%10;
        b/=10;
        chislo2[i]=d;
    }
    //exit(1);
    int i=19;
    for(;chislo1[i]==0;i--);
    //cout <<i<<endl;
    //exit(1);
    r1=i;
    //vuvodim polychivcheec9 chislo
    for(;i>=0;i--)
        cout <<chislo1[i]<<' ';
    cout <<endl;
    //vuvod vtorogo chicla
    i=19;
    for(;chislo2[i]==0;i--);
    r2=i;
    for(;i>=0;i--)
        cout <<chislo2[i]<<' ';
    cout <<endl;
    
    
    //peremnojaem
    for(i=0;i<=r2;i++)
    {
        cout <<"peremnojaem"<<endl;
        for(int j=0;j<=r1;j++)
        {
            cout <<chislo1[j]<<"*"<<chislo2[i]<<endl;;
            //cout <<chislo2[i];
        }
    }
}
Просто там отлаживать дофига нужно. exit(1); дофига использовать нада.

Добавлено через 32 секунды
будем считать, что число a всегда больше числа b;

Добавлено через 9 минут
Та пытался полностью сделать там головняк вспомнил там тебе еще нужно и сложение делать. Сначала напиши функцию которая будет складывать два массива, и возвращать третий, а затем уже умножай. Но это трудная задача. Если ты не сильно шаришь, то даже не пытайся делать виг чо сделаешь.
 
Текущее время: 15:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru