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

Разбор алгоритма программы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Циклический оператор while! http://www.cyberforum.ru/cpp-beginners/thread1094326.html
Дано вещественное число а. Найти все значения n, при которых. Необходимо решить через While на примере вот этого: Найти сумму всех элементов последовательности: #include "stdafx.h" #include <conio.h> #include <stdio.h> void main()
C++ Каким образом лучше осуществить вывод массива с помощью графики? Добрый день! Имеется массив размера примерно 1000 на 500. Некоторые ячейки закрашенные, некоторые нет. Каким образом лучше осуществить вывод этого массива с помощью графики? А также можно какую-то литературу порекомендовать по графике в С++. http://www.cyberforum.ru/cpp-beginners/thread1094325.html
C++ Реализовать класс
Ребят, очень нужна помощь, помогите пожалуйста кто может, буду признателен! Информационная запись о файле в каталоге содержит поля: имя файла, расширение, дата и время создания, атрибуты "только чтение", "скрытый", "системный", размер файла на диске. Для моделирования каталога реализовать класс Directory, содержащий название родительского каталога, количество файлов в каталоге, список файлов в...
C++ Побитовые операции msb и lsb
Доброго дня, подскажите пожалуйста, как можно справиться со следующей задачей: есть некоторое сообщение, которое летает по CAN шине, примерно следующего формата: 121.112160___2___FD___Rxd___8___ 0D D2 1F 80 98 0B 00 00. Мне в нем интересны 4 и 5 байты, с соответствующими значениями 0x98 и 0x0B. Эти два байта характеризует один из параметров.
C++ Написать функции для работы с динамическим массивом http://www.cyberforum.ru/cpp-beginners/thread1094302.html
Дали вот эти задачи никак не могу решить, помогите. 1. Написать следующие функции для работы с динамическим массивом: a. Функция распределения динамической памяти. b. Функция инициализации динамического массива. c. Функция печати динамического массива. d. Функция удаления динамического массива. e. Функция добавления элемента в конец массива. f. Функция вставки элемента по указанному...
C++ Кто нибудь можете подсказать, есть ли вообще программы конверторы с языка c++ в паскаль Кто нибудь можете подсказать, есть ли вообще программы конверторы с языка c++ в паскаль подробнее

Показать сообщение отдельно
Eldies
89 / 80 / 28
Регистрация: 06.02.2014
Сообщений: 119
11.02.2014, 20:07     Разбор алгоритма программы
Факториал растет очень быстро. Уже 13! не влезет в int.
Чтобы обойти эту проблему, используется массив int a[1000], в каждый элемент которого записывается по три цифры получившегося числа.
т.е. 6!=720 -> a = {720 , 0, 0,0 .... }
7!=5040 -> a = {40, 5, 0, 0, 0 ... }
10!=3628800 -> a = {800, 628, 3, 0, 0, ...}
и т.д.

Число, лежащее в массиве а, последовательно умножается на все числа от 2 до n.
Умножение происходит вот здесь:
C++
1
2
3
4
5
6
7
8
9
10
11
12
for(j=0;j<num;j++) // num - сколько элементов массива занимает текущий результат вычислений
{
            c=(a[j]*i+ost); // содержимое элемента массива умножается на число, к результату добавляется остаток
            a[j]=c%1000; // новое значение в элементе массива - остаток от деления c на 1000
            ost=c/1000; // то, что в текущий элемент массива не влезает, нужно перенести в следующий
}
a[num]=ost%1000;  // это делается на случай удлинения числа
ost/=1000;
a[num+1]=ost%1000;
ost/=1000;
a[num+2]=ost;
ost=0;
Про вывод:
Старший элемент массива выводится как есть.
Для каждого из оставшихся должно быть выведено 3 цифры. Если число в элементе массива слишком маленькое, перед ним выводятся 1 или 2 нуля, чтобы в итоге было три цифры.
 
Текущее время: 02:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru