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

Как реализовать работу с очень большими числами? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Подсчет количества разных символов в строке http://www.cyberforum.ru/cpp-beginners/thread1812820.html
в строке, вводимой пользователем, подсчитать количество разных символов. сделать при помощи string.h была идея сделать счетчик, который увеличивался при найденом совпадениив предложении. числа от 32 до 128 по таблице ASCII означают символ. но довести до ума не могу. и доп. просьба. подскажите годный материал по обучению с++. пока понял матрицы и все, что до них. заранее извиняюсь. первый курс...
C++ Перегрузить операции для пользовательского класса Point Есть класс Point. Нужно сделать для него перегрузки: 1) операции ++ (--) одновременно увеличивает (уменьшает) значения полей х и y на 1; 2) констант true и false: обращение к экземпляру класса дает значение true, если значения полей х и y совпадает, иначе false; 3) операции бинарных +: одновременно добавляет к полям х и у значение скаляра; 4) Преобразование типа Point в string (и наоборот)... http://www.cyberforum.ru/cpp-beginners/thread1812819.html
C++ Вычислить значения функции y = -0,5 ln (x) при значениях аргумента, заданных в массиве X
Дан массив X, размером 5. Вычислить значения функции y = -0,5 ln (x) при значениях аргумента, заданных в массиве X, и поместить их в массив У. Напечатать результат в виде двух столбцов. Ребят, кто может помочь объяснить, я не пойму задание Вот что я набросал (там где логарифм горит красным, менял и так, и сяк): #include "stdafx.h" #include "iostream" #include "cmath" #include "conio.h"
C++ Аналог feof для плюсов
Нужно написать цикл while, который считывает, пока не конец файла. В Си есть функция feof. Подскажите аналог для С++.
C++ Вызов метода класса из main http://www.cyberforum.ru/cpp-beginners/thread1812790.html
Как вызвать функцию plus в меин? пробовал вариант р3.=р3.plus(p1,p2), но не получилось #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; class Nexia { protected: int c,m;
C++ Вывод из массива символов Дан массив символов.Вывести на экран последовательность символов, что расположена между скобок Я полный ноль в этой теме. Подскажите как это сделать. Вот мой недокод. Пытался делать с помощью ASCII кодов #include<iostream> #include<string.h> using namespace std; int main() { setlocale (0, "Russian"); подробнее

Показать сообщение отдельно
smoki
0 / 0 / 0
Регистрация: 14.06.2016
Сообщений: 8

Как реализовать работу с очень большими числами? - C++

24.09.2016, 15:05. Просмотров 189. Ответов 6
Метки (Все метки)

Добрый день всем!

Очень необходимы светлые мозги, ибо не могу понять в чем проблема.
Есть работающая программа:

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
#include <iostream>
#include <conio.h>
#include <stdio.h>
#define N 100
#define start 1
using namespace std;
 
void main()
{
    system("cls");
    long int a1,a2;
    long int res1,res2;
    long int c1,c2;
    a1=start;
    a2=a1+N;
    res1=(a2+2)/5;
    res2=(a2+4)/6;
    
    long i,j,q,z,z1,z2,r,g,a;
    long nums[N];
 
    for (i=start; i<(start + N); i++)
    {
        nums[i-start+1]=10*i+8;
    }
    for (i=1; i<N; i++)
    {
        for (q=1;q<=res1;q++)
        {
            c2=(a2+q+2)/(10*q-8);
            c1=(a1+q+2)/(10*q-8)+1;
 
            for (g=c1;g<c2;g++)
            {
                z=(10*q+8)*g-(q-2);
                if ((z-start+1)<N)
                    nums[z-start+1]=0;
                else 
                    break;
            }
        }
        for (q=1;q<=res2;q++)//3
        {
            c2=(a2+q)/(10*q-6);
            c1=(a1+q)/(10*q-6)+1;
            for (g=c1;g<=c2;g++)
            {
                z=(10*q-6)*g+q;
                if ((z-start+1)<N)
                    nums[z-start+1]=0;
                else 
                    break;
            }
        }
 
    }
    for (i=1;i<N;i++)
    {
        printf("%1d element = %1d\n",i,nums[i]);
    }
    getch();
}
но максимальное N в #define N задается что-то с 9 нулями. Хочу взять больше. Подключаю мат.библиотеку и пробую переписать прогу так

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
#include "ttmath\ttmath.h"
#include <iostream>//7 proverka proshla
#include <conio.h>
#include <stdio.h>
using namespace std;
using namespace ttmath;
#define N 100
#define start 1
 
typedef Big<4, 256> BigNum; 
 
void main()
{
    system("cls");
    BigNum a1,a2;
    BigNum res1,res2;
    BigNum c1,c2;
    a1=start;
    a2=a1+N;
    res1=(a2+2)/5;
    res2=(a2+4)/6;
    
    BigNum i,j,q,z,z1,z2,r,g,a;
    BigNum nums[N];
 
    for (i=start; i<(start + N); i++)
    {
        nums[i-start+1]=10*i+8;
    }
    for (i=1; i<N; i++)
    {
        for (q=1;q<=res1;q++)
        {
            c2=(a2+q+2)/(10*q-8);
            c1=(a1+q+2)/(10*q-8)+1;
 
            for (g=c1;g<c2;g++)
            {
                z=(10*q+8)*g-(q-2);
                if ((z-start+1)<N)
                    nums[z-start+1]=0;
                else 
                    break;
            }
        }
        for (q=1;q<=res2;q++)
        {
            c2=(a2+q)/(10*q-6);
            c1=(a1+q)/(10*q-6)+1;
            for (g=c1;g<=c2;g++)
            {
                z=(10*q-6)*g+q;
                if ((z-start+1)<N)
                    nums[z-start+1]=0;
                else 
                    break;
            }
        }
 
    }
    for (i=1;i<N;i++)
    {
        printf("%1d element = %1d\n",i,nums[i]);
    }
    getch();
}
Пограма начинает ругаться уже на строке nums[i-start+1]=10*i+8; подчеркивая знак умножения (*) и далее во всех строчках, где он присутствует.

Подскажите,пожалуйста, в чем проблема.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru