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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Serega1
0 / 0 / 0
Регистрация: 03.11.2009
Сообщений: 68
09.04.2010, 03:34     Найти все цифры числа 100! #1
Здравствуйте уважаемые форумчане.
Мне нужно найти все цифры числа 100!
Помогите в обьяснении алгоритма и как проще всего это сделать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2010, 03:34     Найти все цифры числа 100!
Посмотрите здесь:

Найти все простые числа из интервала от 100 до 1000, используя логическую функцию C++
Цикл: Найти и напечатать все простые числа, меньше 100 C++
C++ Дано натуральное число n (n <= 9999). Учитывая все четыре цифры числа, определить, правильно, что оно содержит: все разные цифры
C++ Найти все трехзначные числа, в которых все цифры различны.
C++ Найти все цифры числа, которые являются его делителями
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
студентка347
2 / 2 / 0
Регистрация: 26.01.2010
Сообщений: 38
09.04.2010, 04:03     Найти все цифры числа 100! #2
C
1
2
3
4
5
6
#include <stdio.h>
int main() {
int i;
for (i=0; i<100; ++i) {
    i++; printf("%d\n", i); }
}
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
09.04.2010, 06:38     Найти все цифры числа 100! #3
нет. Это все чётные числа, меньше 100. А цифры числа 100:
начиная, с младшей:
C++
1
2
3
4
5
6
7
8
9
10
#include <stdiod.h>
int main()
{
 int x;
 for (x=100; x!=0; x/=10)
 {
  cout<<(x%10)<<"\n";
 }
 return 0;
}
, со старшей:
C++
1
2
3
4
5
6
7
8
9
10
#include <stdiod.h>
int main()
{
 int x;
 for (x=100; x!=0; x/=10)
 {
  cout<<((100/x)%10)<<"\n";
 }
 return 0;
}
.

Добавлено через 4 минуты
Или имеются ввиду цифры не самой сотни, а её факториала? Тогда я не знаю, даже как вычислить сам факториал, и справится ли с этим вообще хоть какая-то современная персоналка.
Serega1
0 / 0 / 0
Регистрация: 03.11.2009
Сообщений: 68
09.04.2010, 07:08  [ТС]     Найти все цифры числа 100! #4
студентка347, taras atavin
Спасибо за ответы, но это не то. Мне нужно 100 факториал. Извиняюсь что не правильно сформулировал вопрос.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
09.04.2010, 07:24     Найти все цифры числа 100! #5
Ну почему же неправильно? 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);
}
.
Serega1
0 / 0 / 0
Регистрация: 03.11.2009
Сообщений: 68
09.04.2010, 07:40  [ТС]     Найти все цифры числа 100! #6
taras atavin
Про библиотеку BIG.h. Я посмотрел в Turbo C++ нет, а где есть, не подскажете?
Еще про способы вычисления 100 факториал. Например закидывать в функцию и перемножать.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
09.04.2010, 08:04     Найти все цифры числа 100! #7
Названия класса и самого файла - условны. Ищи класс длинной арифметики с указанной разрядностью и разбирайся конкретно с ним. Где искать - не знаю.

Добавлено через 45 секунд
Цитата Сообщение от Serega1 Посмотреть сообщение
Например закидывать в функцию и перемножать.
А я как написал? Не умножением?

Добавлено через 1 минуту
Большую везде F замени малой f, или наоборот: использование обоих вариантов - очепятка.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
09.04.2010, 09:26     Найти все цифры числа 100! #8
taras atavin, использовать рекурсию для длинной арифметики - это более чем глупо

100!
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
09.04.2010, 09:51     Найти все цифры числа 100! #9
100 килобит стека из-за одного дейсвительно не очень умно. Ну тогда циклическая версия той же функции:
C++
1
2
3
4
5
6
7
8
9
BIG f(int x)
{
 BIG Result;
 for (Result=1; x>0; --x)
 {
  Result*=x;
 }
 return Result;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2010, 09:58     Найти все цифры числа 100!
Еще ссылки по теме:

Найти все числа, начинающиеся с цифры, выбранной пользователем C++
C++ Найти все четырехзначные числа, у которых все цифры различны

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

Или воспользуйтесь поиском по форуму:
Serega1
0 / 0 / 0
Регистрация: 03.11.2009
Сообщений: 68
09.04.2010, 09:58  [ТС]     Найти все цифры числа 100! #10
taras atavin
Спасибо за наставления, но я сделаю сам, по своему.
M128K145
9.33262154 × 10^157
Yandex
Объявления
09.04.2010, 09:58     Найти все цифры числа 100!
Ответ Создать тему
Опции темы

Текущее время: 09:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru