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

Последовательность - C++

Восстановить пароль Регистрация
 
Юльчик\
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 7
26.05.2011, 15:00     Последовательность #1
Даны натуральные числа n, а1 ..., an. Получить произведение членов последовательности а1, ..., an, удовлетворяющих условию 2^n<an<n!

Пожалуйста, помогите написать код. Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2011, 15:00     Последовательность
Посмотрите здесь:

Преобразовать литерную последовательность в другую литерную последовательность всеми описанными ниже способами C++
Вводится последовательность из N целых чисел. Сформировать последовательность, C++
C++ Вводить последовательность вещественных чисел, пока следующее вводимое число не окажется меньше предыдущего. Вывести полученую последовательность.
Вводится последовательность целых чисел,0 –конец последовательности. Определить, содержит ли последовательность хотя бы три отрицательных четных числа C++
C++ Дана последовательность, элементы которой есть целые двузначные числа. Упорядочить последовательность по убыванию произведений цифр
Массив: Вставить в последовательность действительное число b так, чтобы последовательность осталась неубывающей. C++
Если последовательность отсортирована по возрастанию, оставить ее без изменения. Иначе получить иную последовательность C++
C++ Вводится последовательность из N вещественных чисел. Определить, является ли последовательность знакочередующе

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NightmareZ
 Аватар для NightmareZ
1336 / 559 / 37
Регистрация: 31.03.2009
Сообщений: 1,907
27.05.2011, 03:57     Последовательность #2
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
32
33
34
35
36
37
38
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int fact(int x)
{
    int i, m = 1;
 
    for (i = 2; i <= x; ++i)
        m *= i;
 
    return m;
}
 
int main(void)
{
    int i, n, *a, n1, n2, m = 1;
 
    printf("n = ");
    scanf("%d", &n);
 
    n1 = powl(2, n);
    n2 = fact(n);
    a = (int*)malloc(n * sizeof(int));
 
    printf("\ninput elements:\n");
    for (i = 0; i < n; ++i)
        scanf("%d", a + i);
 
    for (i = 0; i < n; ++i)
        if (n1 < a[i] && a[i] < n2)
            m *= a[i];
 
    free(a);
 
    printf("result: %d", m);
    return EXIT_SUCCESS;
}
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
27.05.2011, 07:46     Последовательность #3
Немного глупая задача, n попадет в то неравенство только при n>3, т.к. 2^3=8, 3!=6
При n=5 результат перестает влазить в unsigned int64
Так что единственно возможное значение n без длинной арифметики-4
С длинной арифметикой я уже выкладывал=\
Последовательность
Или я не так условие понял... Нужно найти произведение всех элементов, больших, чем 2^n и меньших, чем n! ?
Yandex
Объявления
27.05.2011, 07:46     Последовательность
Ответ Создать тему
Опции темы

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