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

Программа со сверхбольшими числами не выполняется до конца - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перевод чисел из 10 СС в 2 СС http://www.cyberforum.ru/cpp-beginners/thread785033.html
Помогите пожалуйста написать программу,которая представляла бы введенное число типа unsigned char в двоичном виде с помощью битовых масок.
C++ нарисовать розу ветров на с++ нарисовать розу ветров на языке с++? http://www.cyberforum.ru/cpp-beginners/thread785025.html
C++ Волновой алгоритм
Подскажите пожалуйста, на сколько сложно изготовить из матрицы 0000 0000 0000 напр.4345 3234 2123 3234 Только при помощи обычных циклов.
C++ Выделение динамической памяти для матрицы
Здравствуйте! Подскажите, пожалуйста, что делаю не так..написала программу, которая считывает двумерный массив...с помощью операторов new и delete выделила память в куче... Но, после ввода значений выскакивает ошибка - Debug Assertion Failed #include <iostream> #include <conio.h> using namespace std;
C++ Программа для включения/выключения WiFi у роутера http://www.cyberforum.ru/cpp-beginners/thread784976.html
Всем доброго времени суток. Появилась нужда программно отключать или включать WiFi у роутера. Роутер Tenda W368R. Отключается в настройках простым убором галочки с Enable Wireless. Но каждый раз туда лазить не удобно. Поэтому решил спросить возможно ли создать программу которая смогла бы отключать или включать WiFi. Думал справится командная строка, но ничего не нашёл по этому поводу. Поэтому...
C++ Функция типа bool Сумма первой и последней цифры в введенном четырехзначном числе является нечетным значением. Если это так, то функция должна возвращать либо false, либо true. То есть, вводим число 4023 (и должно вывести на экран 1(true), так как 4+3-нечетное, либо я не так понимаю?) Вводим 2782 (выводит 0 (false), 2+2-четное) Я попробовал сделать так, подскажите, как сделать правильнее (программа корректно не... подробнее

Показать сообщение отдельно
kickupduster
 Аватар для kickupduster
4 / 4 / 1
Регистрация: 04.08.2013
Сообщений: 20
02.09.2013, 17: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
verylong verylong::operator / (const verylong v) //целочисленное деление
{
    char *str_v = new char[vlen]; //временная строка
    strcpy(str_v,vlstr); strrev(str_v); //переворачиваем ее в нормальный вид
    verylong b, rez, vltemp, null;
    null.vlen = 1; 
    b = abs(v); //значение по модулю
    if (b == null) {cerr << "ОШИБКА!!! Деление на ноль!!!" << endl; return null;}
    if (abs(*this) < b) return null; //если делимое меньше делителя - возвращаем ноль
    for(int i=0, n=0; i<vlen;) //перебираем разряды делимого
    {
        while(vltemp < b) //берем разряды делимого
        {                 //пока не получим число большее делителя
            if (i >= vlen) return rez; 
            int d = str_v[i]-'0'; //берем разряд
            if (d == 0 && vltemp == null) rez = mult10(rez); //сносим нули при необходимости
            else vltemp = mult10(vltemp) + d; //формируем число 
            i++;
        }
        if (vltemp >= b) //если получили такое число
        {
            while(vltemp >= b) //уменшаем его
            {                  //пока остаток не станет меньше делителя
                vltemp = vltemp - b; 
                n++; //считаем значение разряда
            }
            rez = mult10(rez) + n; //формируем результат
            n = 0; //зануляем значение разряда
        }          //и повторяем цикл пока не пройдем весь делитель
    }
    if (minus == true || v.minus == true) rez.minus = true; //учитываем знаки исходных данных
    if (minus == true && v.minus == true) rez.minus = false;
    return rez;
}
 
Текущее время: 03:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru