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

Найти все цифры числа 100! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Действия над типом Char http://www.cyberforum.ru/cpp-beginners/thread114552.html
Как узнать сколько содержит сиволов, пустая ли она, содержит ли одни буквы переменная N: ///Подключение библиотек ... char N; cout<<"Введите фамилию"; cin>>n; ... ///Действия Буду благодарен...
C++ Задача с рекурсией Здравствуйте, не могу до конца осмыслить, как сделать это (см. ниже) через рекурсию: http://www.cyberforum.ru/cpp-beginners/thread114550.html
C++ Строки отсортировать
помогите пожалуйста с задачкой, совсем запуталась. нужно найти слова по введенной с клавиатуры строке, полученные слова отсортировать по алфавиту и вывести на экран. начала писать программу, слова...
C++ Вопрос о IDE.
Я сам начинающий, и вот решил начать с книжки Либерти.C++ за 21 день, стал вопрос о среде, перечитал кучу форумов где были споры о MSVS, builder, Codeblockc, DevC++ и тд.. Особенно интересовали споры...
C++ Не могу допереть до алгоритма определения суммы и кол-ва элементов массива http://www.cyberforum.ru/cpp-beginners/thread114539.html
Вот какое задание было: "Элементы массива размером (310) вычисляются следующим образом: В первой строке содержатся случайные числа из диапазона (-1 +1). Элементы второй строки вычисляются в...
C++ Упорядочить столбцы матрицы по убыванию их характеристик Характеристикой столбца назовем наибольшее количество идущих подряд отрицательных элементов. Упорядочить столбцы матрицы по убыванию их характеристик. Помогите пожалуйста.Нужен листинг... подробнее

Показать сообщение отдельно
taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
09.04.2010, 07:24
Ну почему же неправильно? 100! - общепринятая запись факториала сотни. Неправильно вопрос был прочитан, то есть мы приняли факториал за восклицательный знак (знак препинания). Факториал сотни - очень большое число. Хотя, разрядность в память всё-таки влезет даже для 178!, а число множителей достаточно мало. Так что это в принципе реализуемо. Для твоей задачи нужна длинная арифметика с разрядность более 526 бит на число. Где её взять - не знаю. Но если исходить из наличия класса BIG длинных чисел в файле BIG.h, то сам факториал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include "BIG.h"
BIG f(int x);
int min ()
{
 cout<<f(100);
 return 0;
}
BIG f(int x)
{
 if (x==0)
 {
  return (BIG)1;
 }
 return (BIG)x*F(x-1);
}
, цифры с младшей:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include "BIG.h"
BIG f(int x);
int min ()
{
 BIG x;
 for (x=f(100); x!=0; x/=10)
 {
   cout<<(x%10)<<"\n";
 }
 return 0;
}
BIG f(int x)
{
 if (x==0)
 {
  return (BIG)1;
 }
 return (BIG)x*F(x-1);
}
, цифры со ставршей:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include "BIG.h"
BIG f(int x);
int min ()
{
 BIG x;
 BIG y;
 x=f(100);
 for (y=1; y<=x; y*=10);
 for (; y!=0; y/=10)
 {
   cout<<((x/y)%10)<<"\n";
 }
 return 0;
}
BIG f(int x)
{
 if (x==0)
 {
  return (BIG)1;
 }
 return (BIG)x*F(x-1);
}
.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru