Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.68
solya666
2 / 2 / 0
Регистрация: 14.01.2010
Сообщений: 31
#1

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

13.05.2010, 01:51. Просмотров 3038. Ответов 5
Метки нет (Все метки)

Здравствуйте
помогите пожалуйста с задачкой на с++ борландс

1. "Вычислить точное значение (n!)! "

2. "Для заданной квадратной матрицы сформировать одномер¬ный массив из ее диагональных элементов. Найти след матрицы, суммируя элементы одномерного массива. Преобразовать исход¬ную матрицу по правилу: четные строки разделить на полученное значение, нечетные оставить без изменения"

_____________________
заранее благодарю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2010, 01:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Длинная арифметика (C++):

Длинная арифметика - C++
Ребята,объясните как решить задачу , напишите хоть часть кода. Пусть даны числа a , b . Найти a+b, если a и b не больше чем 10 в...

Длинная арифметика - C++
:senor: Здраствуйте, пишу модуль длинной математики. В принципе, работоспособность у него положительная. Но в силу моей неопытности меня...

Длинная арифметика - C++
Вот условие задачи: Во время исследований, посвященных появлению жизни на планете Олимпия, учеными было сделано несколько сенсационных...

Длинная арифметика - C++
Всем доброго вечера. Нужна помощь в решении задачи. Составить программу для вычисления числа: 2^64-1. В результате сохранить все...

Длинная арифметика N+1 - C++
Помогите плиз. Вводится n. Вывести N+1. Ограничений нет. Я понимаю что надо ввести массив и читать каждый символ. Оставшиеся елементы...

Длинная арифметика. - C++
Даны два длинных числа a и b. Найти частное и остаток при делении числа a на b. Не могу реализовать деление отрицательных чисел. Помогите...

5
M128K145
Эксперт С++
8305 / 3525 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
13.05.2010, 03:36 #2
Факториал больших чисел
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include "Factorial.h"
int main()
{
    setlocale(LC_ALL, "Russian");
    
    Factorial *factorial = new Factorial();
    int fact;
 
    std::cout<<"Введите факториал:\n> ";
    std::cin>>fact;
    
    factorial->WriteFactorial(fact);
    
    delete factorial;
    system("pause");
    return EXIT_SUCCESS;
}
factorial.cpp
C++
1
2
3
4
5
6
7
8
9
10
class Factorial
{
public:
    void WriteFactorial(int);
protected:
private:
    void _Factorial(int);
    static const int n = 1500000;
    int mas[n];
};
Factorial.cpp
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
#include <fstream>
#include "Factorial.h"
 
void Factorial::_Factorial(int factorial)
{
    int fact, i, zero = n - 1, index = n - 1;
    for(i = 0; i < n - 1; ++i)
        mas[i] = 0;
    mas[n - 1] = 1;
    for (fact = 2; fact <= factorial; ++fact)
    {
        while (mas[zero] == 0) --zero;
        for (i = zero; i >= index; --i)
            mas[i] *= fact;
        for (i = zero; i > index; --i)
            if (mas[i] >= 1000)
            {
                mas[i - 1] += mas[i] / 1000;
                mas[i] %= 1000;
            }
        if (mas[index] >= 1000)
        {
            mas[index - 1] += mas[index] / 1000;
            mas[index] %= 1000;
            index--;
            if (mas[index] >= 1000)
            {
                mas[index - 1] += mas[index] / 1000;
                mas[index] %= 1000;
                index--;
                if (mas[index] >= 1000)
                {
                    mas[index - 1] += mas[index] / 1000;
                    mas[index] %= 1000;
                }
            }
        } 
    }
}
 
void Factorial::WriteFactorial(int factorial)
{
    _Factorial(factorial);
    int i = 0;
    while (mas[i++] == 0);
    std::ofstream out("factorial.txt", std::ios::out);
    for (i -= 1; i < n; ++i)
    {
        if (mas[i] >= 100)
            out<<mas[i];
        else
            if (mas[i] < 10)
                out<<"00"<<mas[i];
            else
                out<<"0"<<mas[i];
    }
}
1
solya666
2 / 2 / 0
Регистрация: 14.01.2010
Сообщений: 31
13.05.2010, 04:10  [ТС] #3
Составить программу для вычисления 100!. В результате сохранить все цифры.

2.2.Текст программы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream.h>
#include<conio.h>
void main()
{  int i,k,n=200,A[200];
   clrscr();
   for(i=0; i<n; i++)
      A[i]=0;
   A[0]=1;
   for(k=0; k<100; k++)
   {  for(i=0; i<n; i++)
     A[i]*=(k+1);
      for(i=0; i<n; i++)
      {  A[i+2]+=(A[i]/100);
     A[i+1]+=(A[i]%100/10);
     A[i]%=10;
      }
   }
   for(i=0; i<n; i++)
      cout<<A[n-i-1];
   cout<<endl;
   getch();
}

а вот ткова типа можно ????
0
rrrFer
Заблокирован
13.05.2010, 08:29 #4
Цитата Сообщение от solya666 Посмотреть сообщение
C++
1
2
3
4
5
6
7
int i,k,n=200,A[200];
//...
for(i=0; i<n; i++)                   //если i=n-1
 { A[i+2]+=(A[i]/100);            //то тут,
 A[i+1]+=(A[i]%100/10);         //и тут произойдет выход за пределы массива
 A[i]%=10;
 }
смотри комментарии
0
solya666
2 / 2 / 0
Регистрация: 14.01.2010
Сообщений: 31
13.05.2010, 11:03  [ТС] #5
я имею в виду что мне надо такого плана
0
M128K145
Эксперт С++
8305 / 3525 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
13.05.2010, 20:38 #6
solya666, мой код как раз такого типа
0
13.05.2010, 20:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2010, 20:38
Привет! Вот еще темы с ответами:

Длинная арифметика - C++
Поодскажите какую-нибудь библиотеку, где реализована работа со знаковыми целыми числами произвольной длины.

Длинная арифметика - C++
Помогите реализовать длинную арифметику #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main(){ int a; string...

Длинная арифметика - C++
Срочно нужны исходники (функции): 1. Перевод обычного числа в длинное (массив, строка , вектор кто с чем работает) 2. Нахождение суммы...

Длинная арифметика С++ - C++
требуется написать задачу для подсчета суммы s=1^2+2^2+3^2+...+n^2 n&gt;=20000


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.