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

Длинная арифметика - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Построить абстрактный класс http://www.cyberforum.ru/cpp-beginners/thread264308.html
Никак не успеваю с лабораторными, помогите пожалуйста. Построить абстрактный класс Locate, описывающий позицию на экране, и производные классы Figure и Text, описания некоторых фигуру и текст. Построить класс FiguraText производный от классов Figure и Text. Написать функции (методы) Show () и Move () для всех классов.
C++ C++/ Оператор for 1. Посчитать суму чисел от 100 до 200 которые кратные 17 2. Каждые 3 часа амёба надвое, посчитать сколько будет амёб будет через 120 часов http://www.cyberforum.ru/cpp-beginners/thread264284.html
Определить процедуры выполнения арифметических операций над комплексными числами C++
Добрый день. Помогите пожалуйста решить задачу на си. Тема:Программирование задач с использованием нескольких функций на языке Си. Даны действительные числа u1, u2, v1, v2, w1, w2. Получить - комплексные числа u1 + iu2, v1 + iv2, w1 + iw2. (Определить процедуры выполнения арифметических операций над комплексными числами.)
C++ Cетевая игра "крестики-нолики"
Помогите, на курсовой задали, сделать сетевую игру крестики-нолики в консоли, нужно сделать сервер и клиенты. Там необходимо создать библиотеки у меня уже почти все готовы только как все это собрать в рабочую программе, чтобы был сервер, и клиент не знаю, так как очень плохо в этом разбираюсь тем более сетевая игра. Ниже прилагаю полный текст задания. Вдруг кому уже давали подобное задание...
C++ Напишите функцию itob(n,s,b) http://www.cyberforum.ru/cpp-beginners/thread264218.html
Напишите функцию itob(n,s,b), которая переводит целое n в строку s, представляющую число по основанию b. В частности, itob(n, s, 16) помещает в s текст числа n в шестнадцатеричном виде.
C++ С++ Вот у меня такой вопрос,вот написал я программу,вот я там например ввожу массив и что-то с ним делаю, она мне в конце выдает какие-то данные и при нажатие Enter она закрываеться.Вопрос:возможно сделать так,чтобы она при нажатие Enter(или какой-то любой определенной клавиши) как бы загружала сама себя ещё раз,и чтобы я мог опять вводить теже данные в массив,т.е. чтобы был замкнутый цикл. подробнее

Показать сообщение отдельно
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
06.04.2011, 18:55  [ТС]     Длинная арифметика
Я всё мучаюсь с длинной аривметикой. Вообщем умножение в столбик.Я разобрался как умножить большое число на большое. Но после умножения их нужно сложить причём добавлять ноль в каждой строке как это сделать я не разобрался . Пока я пытаюсь сложить всё что получилось после умножения.
Я сделал что то неправильно так как получается число не совсем маленькое но по сравнению с тем что должно быть оно маленькое слишком.Что я сделал неправильно?
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <math.h>
#include <locale.h>
#include <iostream>
void my_fync1( char *a,char *b);
struct sum
{
    char c[10000];
};
void main()
{
        
        char a[1000],b[1000];
        gets(a);
        gets(b);
        my_fync1( a,b);
        system("pause");
        
}
void my_fync1( char *a,char *b)
{
        int n=strlen(b);
        sum *summa;//масив структур
        summa=new sum [n];//
        int l,m,j,t,d=0,i;
        int h;
        strrev(a);
        l=strlen(a);
        //УМНОЖЕНИЕ
        for(m=0,j=0;m<n,j<strlen(b);m++,j++)//
        {
            for(i=0;i<l;i++)//
            {
                t=(a[i]-48)*(b[j]-48)+d;//это результат умножения на первый символ масива (б) 
                if(t<9)
                {
                    summa[m].c[i]=t+48;//если число однозначное то оно остаётся обычным
                    d=0;//
                }
                else
                {
                    summa[m].c[i]=t%10+48;//если число двузначное 12 например то остаток деления на 10  даст нам число 2
                    d=t/10;//деление на 10  переменных int  даёт нам первую цифру 1
                }
            }
            if(d>0)//есле после этого цикла д больше нуля то к каждому элементу масива прибавляется 48 что бы в символьном масивевыводилось то число котороебыло
            {
              summa[m].c[i++]=d+48;//
            }
              summa[m].c[i]='\0';
              
              
        }
        for(m=0;m<n;m++)
        {
             printf("%s\n",summa[m].c);
 
        }
        //СЛОЖЕНИЕ
        char v[]="000000000000000000000000000000000000";//стартовый масив к которому в периуд цикла должно всё прибавлятся
        for(m=0;m<n;m++)
        {
        
         for(i=0;i<n;i++)
             {
                h=(v[i]-48)+(summa[0].c[i]-48)+d;//сложение всех масивов
                if(h<9)
                {
                    v[i]=h+48;//
                    d=0;//
                }
                else
                {
                    v[i]=h%10+48;//
                    d=h/10;//
                }
            
                if(d>0)
                {
                v[i++]=d+48;// 
                }
             }
        }
        v[i]='\0';
        printf("summa=%s\n",v);
}
 
Текущее время: 15:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru