Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 03.11.2009
Сообщений: 68
1

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

09.04.2010, 03:34. Просмотров 1789. Ответов 9
Метки нет (Все метки)

Здравствуйте уважаемые форумчане.
Мне нужно найти все цифры числа 100!
Помогите в обьяснении алгоритма и как проще всего это сделать.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.04.2010, 03:34
Ответы с готовыми решениями:

Как получить все числа от 100 до 999 без цифры 0?
Не могу понять, как из всех трехзначных чисел выбрать те, в которых нет цифры 0 в середине. Вообще...

Цикл: Найти все простые числа, для каждого из которых сумма первой и второй цифры равна сумме третьей и четвертой цифры.
На интервале найти все простые числа для каждого из которых сумма первой и второй цифры равна...

Найти все четырехзначные числа, у которых все цифры различны
Найти все четырехзначные числа, у которых все цифры различны.

Найти все четырехзначные числа, у которых все цифры различны
4)Найти все четырехзначные числа, у которых все цифры различны.

9
3 / 3 / 1
Регистрация: 26.01.2010
Сообщений: 38
09.04.2010, 04:03 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); }
}
0
4196 / 1789 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
09.04.2010, 06:38 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 минуты
Или имеются ввиду цифры не самой сотни, а её факториала? Тогда я не знаю, даже как вычислить сам факториал, и справится ли с этим вообще хоть какая-то современная персоналка.
0
0 / 0 / 0
Регистрация: 03.11.2009
Сообщений: 68
09.04.2010, 07:08  [ТС] 4
студентка347, taras atavin
Спасибо за ответы, но это не то. Мне нужно 100 факториал. Извиняюсь что не правильно сформулировал вопрос.
0
4196 / 1789 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
09.04.2010, 07:24 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);
}
.
0
0 / 0 / 0
Регистрация: 03.11.2009
Сообщений: 68
09.04.2010, 07:40  [ТС] 6
taras atavin
Про библиотеку BIG.h. Я посмотрел в Turbo C++ нет, а где есть, не подскажете?
Еще про способы вычисления 100 факториал. Например закидывать в функцию и перемножать.
0
4196 / 1789 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
09.04.2010, 08:04 7
Названия класса и самого файла - условны. Ищи класс длинной арифметики с указанной разрядностью и разбирайся конкретно с ним. Где искать - не знаю.

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

Добавлено через 1 минуту
Большую везде F замени малой f, или наоборот: использование обоих вариантов - очепятка.
0
Эксперт JavaЭксперт С++
8362 / 3583 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
09.04.2010, 09:26 8
taras atavin, использовать рекурсию для длинной арифметики - это более чем глупо

100!
933262154439441526816992388562667004907159682643816214685929 638952175999932299156089414639761565182862536979208272237582 51185210916864000000000000000000000000
0
4196 / 1789 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
09.04.2010, 09:51 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;
}
0
0 / 0 / 0
Регистрация: 03.11.2009
Сообщений: 68
09.04.2010, 09:58  [ТС] 10
taras atavin
Спасибо за наставления, но я сделаю сам, по своему.
M128K145
9.33262154 × 10^157
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2010, 09:58

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Найти все трехзначные числа, в которых все цифры различны.
Помогите, пожалуйста, решить задачу в С++. Найти все трехзначные числа, удовлетворяющие условию:...

Найти все шестизначные числа, которые увеличиваются втрое при перестановке первой цифры числа в конец
Почему после цикла к ячейке i присваевается 1 вместо 100001? #include&lt;iostream&gt; using...

Найти все простые числа в диапазоне от 1 до 100
Заранее прошу прощения за , возможно, глупые вопросы, так как я новичок и на форуме и в...

Дано натуральное число n (n <= 9999). Учитывая все четыре цифры числа, определить, правильно, что оно содержит: все разные цифры
Плиз срочно надо=) для Microsoft Visual Studio 2010 Запрещено размещать тему в нескольких...


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

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

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