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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ссылки в С++ http://www.cyberforum.ru/cpp-beginners/thread751019.html
void swap(int& i, int& j) { int tmp = i; i = j; j = tmp; } int main() { int x, y;
C++ Как доделать длинную целочисленную арифметику? Операторы: сравнения присваивания, сложения, вычитания, левого и правого сдвига, деления, остатка, умножения, приведения к обычному целому, унарный минус, деструктор и конструкторы реализованы, тесты показывают, что они работают правильно. Член uint8_t Data; //This is the number. The encoding is additional code. The byte order is little-endian. - само число, представленное массивом цифр в... http://www.cyberforum.ru/cpp-beginners/thread751009.html
C++ Найти 100 первых простых чисел
найти 100 первых простых чисел
Оператор while C++
Поскольку я еще начинающий, то задам такой вопрос: В цикл while мне нужно поставить несколько условий, вот, что я пишу: while (a1 = a2; a1 = a3; a1 = a4; a1 = a5; a1 = a6; a1 = a7; a1 = a8; a1 = a9) { a1 = rand() % 9; a2 = rand() % 9; a3 = rand() % 9; a4 = rand() % 9; a5 = rand() % 9; a6 = rand() % 9;
C++ По результату определить загаданное число http://www.cyberforum.ru/cpp-beginners/thread750992.html
Клоун предложил каждому из публики задумать число. Потом он сказал: «Прибавьте к задуманному числу 5. Теперь из результата вычтите 2. А теперь к результату прибавьте 7». Потом клоун спросил у желающих, какое число у каждого из них получилось. Услышав ответ, он немедленно объявлял каждому, какое число тот задумывал. Составьте программу, которая повторяла бы фокус клоуна.Нписать на с++.Помогите
C++ Возврат массива из функции Есть задача: используя функции, вычислить количество элементов заранее введённых массивов, которые кратны Х, и переписать в отдельный массив индексы отрицательных элементов этих массивов. Вот код: #include <string.h> #include <iostream> #include <math.h> #include <conio.h> using namespace std; подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
02.01.2013, 19:16     Не используя функций определить члены последовательности, являющиеся квадратами четных чисел
А очевидное банальное решение никому в голову не приходит?
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
#include <iostream>
 
int main()
{
    int n;
    unsigned *nums;
 
    std::cin >> n;
    nums = new unsigned[n];
 
    unsigned max = 0;
    for (int i = 0; i < n; i++) {
        std::cin >> nums[i];
        if (nums[i] > max) {
            max = nums[i];
        }
    }
 
    unsigned count = 0;
    // num * num может вызвать переполнение, ну да ладно
    for (unsigned num = 0; num * num < max; num += 2) {
        for (int i = 0; i < n; i++) {
            if (nums[i] == num * num) {
                count++;
            }
        }
    }
 
    std::cout << count;
 
    delete [] nums;
    return 0;
}
C вычислением корня, за один проход:
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 <iostream>
 
int main()
{
    int n;
    unsigned *nums;
 
    std::cin >> n;
    nums = new unsigned[n];
    for (int i = 0; i < n; i++) {
        std::cin >> nums[i];
    }
 
    unsigned count = 0;
    for (int i = 0; i < n; ++i) {
        unsigned num   = nums[i];
        unsigned mover = 0x40000000;
        unsigned root  = 0;
        unsigned block;
        while (mover) {
            block = root | mover;
            root >>= 1;
            if (num >= block) {
                num -= block;
                root |= mover;
            }
            mover >>= 2;
        }
        if (root % 2 == 0 && (root * root) == nums[i]) {
            count++;
        }
    }
 
    std::cout << count;
 
    delete [] nums;
    return 0;
}
 
Текущее время: 13:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru