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

Факториалы - C++

Восстановить пароль Регистрация
 
NeRRouZ
 Аватар для NeRRouZ
4 / 4 / 0
Регистрация: 19.12.2010
Сообщений: 54
12.04.2011, 17:28     Факториалы #1
http://acm.timus.ru/problem.aspx?space=1&num=1083

помогите решить эту задачу
у меня мысль есть, но похоже неправильная.

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
25
26
27
28
29
30
31
#include "iostream"
using namespace std;
 
int main()
{
   int n;
   char k[20];
   int len;
   int h;
   int f;
   
   cin>>n>>k;
   len = strlen(k);
   f = 1;
   
   if (len>n)
      cout<<n;
   else{
     
           for (int i=1; i<n; i+=len)
           {
               h*=f;
               f+=len;
           }
           
           cout << h <<endl;
        }
   
system ("pause");
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2011, 17:28     Факториалы
Посмотрите здесь:

C++ Марсианские факториалы:
Факториалы! C++
Pascal Факториалы !!
QBasic Факториалы
факториалы QBasic
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sandora
12 / 12 / 0
Регистрация: 10.02.2011
Сообщений: 42
12.04.2011, 17:48     Факториалы #2
C++
1
2
3
4
long int factorial( unsigned n)
{
return ((n > 1)? n * factorial (n - 1) : 1);
}
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
12.04.2011, 17:50     Факториалы #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
typedef unsigned long long long_t;
 
long_t k_factorial(long_t n, long_t k)
{
    if (n == 0)
        return 1;
 
    if (k == 0)
        return n;
 
    long_t result = n;
    long_t m = (n % k == 0) ? k : (n % k);
 
    for (long_t i = m; i <= n - k; i += k)
        result *= i;
 
    return result;
}
Добавлено через 18 секунд
sandora, советую всё же пройти по ссылке)))
Ma3a
Эксперт C++
612 / 456 / 31
Регистрация: 28.01.2011
Сообщений: 605
12.04.2011, 17:56     Факториалы #4
Навскидку как-то так можно

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <fstream>
int main()
        {
        std::fstream file("input.txt",std::ios::in);
        int n,k = 0;
        long long fact = 1;
        for(file  >> n; file.good();k += file.get() == '!' ? 1 : 0);
        file.close();
        file.open("output.txt",std::ios::out);
        for(; n > 0; n -= k)
                fact *= n;
        file << fact;
        file.close();
        }
sandora
12 / 12 / 0
Регистрация: 10.02.2011
Сообщений: 42
12.04.2011, 17:58     Факториалы #5
Цитата Сообщение от silent_1991 Посмотреть сообщение
sandora, советую всё же пройти по ссылке)))
посмотрел, понимаю почему советуете
Yandex
Объявления
12.04.2011, 17:58     Факториалы
Ответ Создать тему
Опции темы

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