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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.88
Bringoff
СуперМодулятор
132 / 131 / 15
Регистрация: 03.11.2012
Сообщений: 974
#1

Количество цифр в факториале - C++

17.02.2013, 18:41. Просмотров 2244. Ответов 10
Метки нет (Все метки)

Найти количество цифр в записи факториала натурального числа N.
Не дружу с длинной арифметикой.
Ограничение - факториал 1000000 за 5 секунд!!! Как это можно?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2013, 18:41     Количество цифр в факториале
Посмотрите здесь:

Гипотеза Симона о факториале - C++
Гипотеза Симона о факториале состоит в следующем: только четыре факториала являются произведением трех последовательных целых чисел. Вот...

Функция вычисляющая количество цифр числа и сумму этих цифр - C++
Не могу найти ошибку. Помогите пожалуйста. Дана последовательность n натуральных чисел. Для каждого числа вычислить количество его цифр и...

Создать файл, ввести символы, вывести на экран количество не латинских букв, количество цифр - C++
Есть код к заднию , но он не правильно показывает данные - киррилицу не ищет а латиницу больше выводит... Задание: Создать текстовый...

Операции с текстом (длина, количество цифр, количество букв) - C++
Составить программу, позволяющую для строки , введенного пользователем , определяет: ( 1) его длину ; (2) количество цифр ; (3) количество...

Сумма цифр и количество цифр - C++
Задача: Вводится два натуральных числа. Нужно написать функции для того, чтобы: (1) найти сумму цифр составляющих это число (545 = 14), ...

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

количество цифр - C++
Нужно программа на Cи, которая после ввода любого числа выводила количество цифр из которых оно состоит(156 - 3 цифры). Если тема уже есть...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sigma214
39 / 40 / 9
Регистрация: 01.05.2012
Сообщений: 166
17.02.2013, 19:03     Количество цифр в факториале #2
Вроде бы так(точно не уверен):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int i;
    double n=1;
    for (i=1;i<1000001;i++)
    {
        n=i*i;
        i++;
    }
    cout << "factorial(1000000)= " << n << endl;
    return n;
}
Somebody
2786 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,190
Завершенные тесты: 1
17.02.2013, 19:21     Количество цифр в факториале #3
http://oeis.org/A034886
C++
1
2
3
4
5
6
7
unsigned f(unsigned n)
{
    const double
        pi = 3.14159265358979323846,
        e = 2.7182818284590452354;
    return std::ceil(std::log10(2 * pi * n) / 2 + n * (std::log10(n / e)));
}
Как оно работает, не знаю. Но работает.
Bringoff
СуперМодулятор
132 / 131 / 15
Регистрация: 03.11.2012
Сообщений: 974
17.02.2013, 19:25  [ТС]     Количество цифр в факториале #4
Цитата Сообщение от Somebody Посмотреть сообщение
Как оно работает, не знаю. Но работает.
Это формула Стирлинга. А количество как сделать? В С++ новичек. Совсем.

Добавлено через 1 минуту
Цитата Сообщение от Sigma214 Посмотреть сообщение
Вроде бы так
Не так...
Somebody
2786 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,190
Завершенные тесты: 1
17.02.2013, 19:32     Количество цифр в факториале #5
Цитата Сообщение от Izobara Посмотреть сообщение
А количество как сделать?
В смысле "количество"?
Bringoff
СуперМодулятор
132 / 131 / 15
Регистрация: 03.11.2012
Сообщений: 974
17.02.2013, 19:39  [ТС]     Количество цифр в факториале #6
Цитата Сообщение от Somebody Посмотреть сообщение
"количество"?
Количество цифр в факториале.
diagon
Higher
1928 / 1194 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
17.02.2013, 19:46     Количество цифр в факториале #7
Цитата Сообщение от Izobara Посмотреть сообщение
Количество цифр в факториале.
log10
Bringoff
СуперМодулятор
132 / 131 / 15
Регистрация: 03.11.2012
Сообщений: 974
17.02.2013, 19:47  [ТС]     Количество цифр в факториале #8
Цитата Сообщение от diagon Посмотреть сообщение
log10
Можно по-русски? Точнее, по С++-сски
diagon
Higher
1928 / 1194 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
17.02.2013, 19:52     Количество цифр в факториале #9
Цитата Сообщение от Izobara Посмотреть сообщение
Можно по-русски? Точнее, по С++-сск
Ну, log10(n) == количество цифр в числе n.
Если по формуле Стирлинга найти факториал, а затем применить к нему log10, то получится примерное число цифр в этом факториале.
Ну и по свойствам логарифмов можно увеличить точность ответа.
Somebody
2786 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,190
Завершенные тесты: 1
17.02.2013, 19:52     Количество цифр в факториале #10
Так это же и есть формула для количества цифр.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2013, 19:59     Количество цифр в факториале
Еще ссылки по теме:

подсчитать количество цифр - C++
Для целого неотрицательного числа n подсчитать количество цифр в десятичной, шестнадцатеричной, восьмеричной и двоичной системах ...

Подсчитывать количество цифр 2 - C++
Всем привет, вот нашёл задачку: Напишите метод который будет подсчитывать количество цифр 2, используемых в записи чилес от 0 до n...

Количество цифр в строке - C++
Написал программу, которая вычисляет количество цифр в строке. Но программа не работает. Что не правильно? #include...

Количество цифр в числе - C++
Число указует пользователь и нужно через for цыкл

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


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

Или воспользуйтесь поиском по форуму:
Bringoff
СуперМодулятор
132 / 131 / 15
Регистрация: 03.11.2012
Сообщений: 974
17.02.2013, 19:59  [ТС]     Количество цифр в факториале #11

Работает!!!!
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
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
unsigned f(unsigned n)
{
    const double
        pi = 3.14159265358979323846,
        e = 2.7182818284590452354;
        if (n==1)
        {
            return 1;
        }
        else
        {
            return std::ceil(std::log10(2 * pi * n) / 2 + n * (std::log10(n / e)));
        }
}
int main()
{
    unsigned n;
    cin>>n;
    cout<<f(n);
}
Yandex
Объявления
17.02.2013, 19:59     Количество цифр в факториале
Ответ Создать тему
Опции темы

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