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

Найти количество нечетных чисел в n-ой строке треугольника Паскаля - C++

Восстановить пароль Регистрация
 
SorryImNoob
0 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 16
03.07.2015, 13:00     Найти количество нечетных чисел в n-ой строке треугольника Паскаля #1
Во входном файле содержится число n (0 ≤ n ≤ 2⋅10^9).
Выходной файл должен содержать одно число — количество нечетных чисел в n-ой строке треугольника Паскаля.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2015, 13:00     Найти количество нечетных чисел в n-ой строке треугольника Паскаля
Посмотрите здесь:

C++ Найти количество удвоенных нечетных чисел среди компонент файла
C++ С++ Дан двумерный массив целых чисел. В каждом столбце найти сумму и количество нечетных чисел.
В каждой строке матрицы найти количество нечетных элементов C++
Найти наибольшее из нечетных и количество четных чисел C++
Числа. Подсчитать количество четных и нечетных чисел- разрядов. Найти суммы только всех четных и только нечетных, проверить какая из сумм больше C++
Найти количество и сумму четных и нечетных чисел в массиве C++
Найти количество нечетных чисел в диапазоне [A,B] C++
Найти количество нечетных чисел на промежутке C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dvano
 Аватар для dvano
131 / 62 / 16
Регистрация: 18.06.2014
Сообщений: 216
Завершенные тесты: 1
03.07.2015, 15:06     Найти количество нечетных чисел в n-ой строке треугольника Паскаля #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
#include <cmath>
#include <cstdint>
#include <iostream>
 
inline uint32_t factorial(uint32_t value)
{
   if (value == 0 || value == 1)
      return 1;
   
   uint32_t temp = 1;
   for (uint32_t i = 0; i < value; i++)
      temp *= value - i;
   
   return temp;
}
 
int main()
{
   uint32_t n = 3;
   uint32_t l = 0;
   for (uint32_t k = 0; k < pow(2, n - 1); k++)
   {
      uint32_t c = factorial(n) / factorial(k) / factorial(abs(n - k));
      if (c & 1) l++;
   }
   std::cout << "result: " << l << '\n';
   return 0;
}
ture
 Аватар для ture
417 / 310 / 120
Регистрация: 27.11.2014
Сообщений: 1,004
03.07.2015, 16:13     Найти количество нечетных чисел в n-ой строке треугольника Паскаля #3
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
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
 
 
int main(){
    setlocale(LC_ALL, "rus");
    
    //Инициализация
    unsigned int bitLine = 0;
        
    //Номер строки треугольника Паскаля
    cout << "Укажите номер строки треугольника Паскаля - ";
    int n;
    cin >> n;
 
    //Счетчик нечетных чисел
    int iCnt;
    for(int i = 1; i <= n; i++){
        //Выставляем общее количество чисел в строке
        iCnt = i;   
        
        //Преобразуем последовательность четных (1) и нечетных (0)
        bitLine <<= 1; //двигаем влево
        bool a = bitLine & (0x1 << 1);
        bool b;     
        for(int j = 1; j < i-1; j++){
            //Получить биты
            b = a;
            a = bitLine & (0x1 << (j + 1));                     
            
            if((!a^b) != b) {
                //Замена бита на противоположные
                unsigned int m = 0x1<<j;
                if(b)
                    bitLine &= ~m;
                else
                    bitLine |=  m;
            }
 
            //Четные числа исключаем из общего количества
            iCnt -= !a^b;
        }
    }
 
    cout << "В строке " << n << " имеется " << iCnt << " нечетных чисел" << endl;
    
    system("pause");
    return 0;
}
Yandex
Объявления
03.07.2015, 16:13     Найти количество нечетных чисел в n-ой строке треугольника Паскаля
Ответ Создать тему
Опции темы

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